Programmable sewing machine

ABSTRACT

A programmable industrial sewing machine adapted to learn and store, in Automatic Learn or Key Learn Modes of operation, a series of sewing machine operations for later automatic duplication. In both modes of operation provision is made for an operator to select the number of initial and final locking stitches prior to commencing stitching operations. Operator actuated controls, such as knee shift device and foot treadle, operate identically in both Learn Modes of operation and as they would operate in a normal manual industrial sewing machine. In the Automatic Learn Mode of operation, a record is compiled in segments, consisting each of a stitch count, a pivot delay time, and a speed copy. In appropriate circumstance, the pivot delay time may be zero. Various positions of the foot treadle, including the neutral and heel position, elicit an appropriate response by means of a computer to effect a recording of a logical series of stitching operations for later automatic reproduction with operator guidance of a work material. In the Key Learn Mode of operation, provision is made for operator imposition of sewing speeds and pivot delay times to facilitate, for example, a rapid record production for automatic operation of the sewing machine at a slower rate of speed with an inexperienced operator.

BACKGROUND OF THE INVENTION

This invention is in the field of Industrial Sewing Machines, moreparticularly, an industrial sewing machine adapted to have thecomponents thereof operated by a computer which may be programmed in aninitial manual operation by an operator.

There exist in the prior art, industrial sewing machines adapted to beautomatically operated by edge guidance systems for automaticallyguiding a work material beneath a sewing needle, and, industrial sewingmachines wherein component operation may be automatically effected withguidance of work material performed by an operator. The instantinvention relates to the latter variety of industrial sewing machines.

In the prior art there are many examples of sewing machines having thecapability for automatically performing back tacks; for automaticallyperforming a thread trimming operation, needle positioning and presserfoot elevation; for automatically implementing a stitch count; forautomatically starting and stopping a sewing machine; for programcontrol of feed, presser foot elevation and speed of operation; forautomatic operation of thread trimming, presser foot elevation and timedelay; for recording of feed motion and playback thereof; and, a machinecombining many of the above features and including a stepwise recordingcapability also exists. Thus, an industrial sewing machine is disclosedin the prior art which has the capability stepwise to record in one oftwo fixed speeds for each of forward and reverse work material feed, anexact stitch count; and for stopping with the sewing needle in an upposition to facilitate removal of work material, or in a down positionfrom which to initiate a thread trim operation or to effect a pivotdelay of measured duration. This prior art industrial sewing machineadmittedly required a relatively highly skilled and trained operator forrecording of a complete sewing cycle, in part due to the complexity ofthe operator actuated controls; and lacked the flexibility required toenable use thereof by relatively unskilled operators of varying degreein both initial recording and later operation.

What is required is an industrial sewing machine adapted to the use ofany industrial sewing machine operator, which includes the capability torecord an initial operation of the sewing machine and the severalcomponents thereof, in a plurality of modes to increase the flexibilityand usefulness thereof.

SUMMARY OF THE INVENTION

The above requirements are obtained in an industrial sewing machinesystem wherein a record of component operation of a sewing machinethereof is retained in a memory of a computer thereof in a plurality ofmodes of operation; wherein in one mode of operation all parameters ofsewing machine operation are recorded including stitch count, variablesewing speed, pivot delay times, first and last backtacks, and finalthread trim; or in another mode of operation wherein operating speed andpivot delay times may be predetermined without regard to actual"learned" operation, to permit a careful initial operation to take placeor to permit a skilled operator to make a rapid record for later slowerautomatic operation with relatively unskilled operators. The recordretained in the memory of the computer in any of the above "learning"modes of operation will be utilized to automatically operate the sewingmachine in another mode of operation.

In the first learning mode, after an initial determination of storagelocation in the memory of a computer of the sewing system for theoperations to be "learned", operator instructions are requested for thenumber of initial and final locking stitches (tacks) desired. The sewingsystem is then ready to "learn" a complete sewing cycle. After the workmaterial is inserted, and the foot treadle is depressed forwardly, theinitial tack is accomplished and stitch counting begins. A completestitching operation may be learned, recording being accomplishedautomatically in segments which terminate in a pivot delay where thepresser foot is elevated with the sewing needle in a down position topermit turning a work material to lay a new line of stitching. In anappropriate circumstance, the pivot delay time may be zero. Completionof a stitching operation, including adding a stitch count, operatingspeed and pivot delay value for a last segment to the record,implementing the final locking stitches and trimming of the sewingthreads, is initiated by the computer where the foot treadle is placedin a heel position, if the stitch count is at least one.

In the second learning mode of operation additional flexibility isobtained by providing for operator imposed instructions relative tocertain recorded sewing parameters, without regard to actual valuesthereof during machine operation. Thus, sew speed and pivot delay valuesare operator determined, while stitch count for each segment is obtainedby the sewing system in operation. After the initial and final lockingstitches are specified by an operator, the sewing system requestsoperator instructions relative to sewing speed for insertion into arecord. The sewing system, however, may be operated in this learningmode at any other operator selected speed. At any pause in machineoperation, an additional sew speed may be changed. If the presser footis elevated, a pivot delay request is made. Stitch count, pivot delayand speed are recorded, as before, at the end of each segment.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the invention may be more fully understood it will now bedescribed, by way of example, with reference to the accompanyingdrawings in which:

FIG. 1 is a front elevational view of a sewing machine and work tablesupporting the sewing machine, components and control systems forimplementing the programming and operation of the sewing machine;

FIG. 2 is an Initialization mode entry (MENTRY) and set up state chartindicating the various states of the sewing machine on start-up;

FIG. 3 is an elevational view of only the control panel shown in FIG. 1,indicating those portions which are active for the MENTRY state of FIG.2;

FIGS. 4a, 4b are a slew state chart indicating slewing operation;

FIG. 5 is an elevation of the control panel in the Set Up modeindicating the slew controls in the active condition for max speed;

FIG. 6 is a Manual Sew state chart indicating the various statesattainable during manual sewing;

FIG. 7 is an elevation of the control panel while in the Manual Sew modeindicating the active portion thereof during the first tackdetermination;

FIG. 8 is a state chart of the sewing machine in the Auto Learn mode;

FIG. 9 is a state chart indicating the state of the sewing system afterAutom Learn or Key Learn has been selected but the memory of thecomputer is unable to store any further information;

FIG. 10 is a state chart of the SEWSEL state from which entry to AutoSew or Control Sew Modes of operation may be made;

FIG. 11 is an elevation of the control panel while in the Auto Learnmode indicating the active portions thereof prior to selection and entryof Style;

FIG. 12 is an elevation of the control panel while in the Auto Learnmode and after the selection of last tack, indicating the activeportions thereof;

FIG. 13 is an elevation of the control panel indicating the activeportion thereof after the completion of the Auto Learn cycle;

FIG. 14 is a state chart of a sewing system in the Key Learn mode;

FIG. 15 is an elevation of the control panel with the sewing system inthe Key Learn mode indicating those portions thereof which are activeprior to selection of sew speed;

FIG. 16A-C is a state chart of the sewing system in the Auto Sew mode;

FIG. 17 is an elevation of the control panel while the sewing system isin one state in the Auto Sew mode indicating those portions thereofwhich are active;

FIG. 18 is an elevation of the control panel while in another state inthe Auto Sew mode;

FIG. 19A-C is a state chart of the sewing system in the Control Sewmode;

FIG. 20 is an elevation of the control panel while in the Control Sewmode;

FIG. 21 is a state chart of the sewing system in the Clear Memory orErase mode;

FIG. 22 is a state chart of the sewing machine in the Repair mode;

FIG. 23 is an elevation of the control panel with the sewing system inthe Repair mode indicating those portions thereof which are active;

FIG. 24 is a representation of the sewing system in block diagram formindicating the interconnections between the sewing machine, computer andcontrol panel thereof;

FIG. 25 is a representation in block form of the program registers anddata registers which were utilized in conjunction with the computer;

FIG. 26 is a representation in block form of the stack structure of theprogram registers;

FIG. 27, illustrates simple addressing circuitry external to thecomputer for addressing the registers;

FIG. 28, illustrates some of the input and output signals for thecomputer that are utilized for interrupt processing; and

FIG. 29, illustrates idealized waveshapes for interrupt timing signals.

Referring to FIG. 1, there is shown an industrial sewing system 40,including a sewing machine 50 supported in a work table 55. A worksupporting bed 51 of the sewing machine 50 is supported substantiallyco-planar with the work supporting top 56 of the work table 55. Thesewing mahine 50 includes a drive system (not shown), and may bepivotably supported in the work table 55 in a manner similar to thatshown in the U.S. Pat. No. 3,924,552, of Wendel, which is herebyincorporated by reference and made a part of this application. As isshown in the above noted patent, the drive system for the sewing machine50 is supported beneath the sewing machine behind a fixed front panel 57thereof and, therefore, concealed from view. Pivotably supported in thebase of the work table 55, is a foot treadle 65, connected by linkage 66to electrical devices mounted on a sewing machine control box 63, whichis supported within the work table behind a hinged front panel 59,itself supported on hinges 60 affixed to cross-member 61 of the worktable. The hinged front panel 59 is retained in a closed state bylatches 62, which may be disengaged to rotate the front paneldownwardly, exposing the sewing machine control box 63 and a computer 72also there supported by the work table 55. Supported on either side ofthe foot treadle 65, for selective actuation by lateral motion of anoperators foot, is a jog switch 68 for placement of a single stitch, anda needle-up positioning switch 70 in order to obtain operator determinedup positioning of a sewing needle 52.

Supported on the right side of the work table 55, beneath the worksupporting top 56, is a small box 73 in which are mounted a main powerswitch 75 and a presser foot elevating swtich 77. A knee shift device 80is pivotably supported on a pivot bar 81 affixed to the fixed frontpanel 57. An abutment member 82 of the knee shift device 80 cooperateswith the presser foot elevating switch 77 in order to effect elevationof a presser foot 53 of the sewing machine 50. Raising and lowering ofthe presser foot 53 may be accomplished by a modification of the systemdisclosed in the U.S. Pat. No. 3,224,393, of Adams et al, assigned tothe same assignee as the instant invention, which is hereby incorporatedby reference and made a part of this application. Thus, motion of thepresser foot 53 may be pneumatically accomplished and controlled by asolenoid actuated valve which is activated by the presser foot elevatingswitch 77.

Supported on the upper right front corner of the work supporting top 56of the work table 55 on a pedestal 84, is a control module 83 having acontrol panel 85. The control module 83 is in electrical communicationwith the computer 72 by means of electrical wires passing through thepedestal 84 to the computer.

The sewing machine drive system referred to above, may be of a knownvariety, or any modification thereof, suitable for operation by thecomputer 72 through the sewing machine control box 63 which isconsidered a part of the sewing machine 50. Such a drive system is shownin U.S. Pat. No. 3,573,581, issued Apr. 6, 1971 to Dutko et al, which ishereby incorporated by reference and made a part of this application.This patent discloses a continuously coupled DC motor for an industrialsewing machine, having the circuitry to sense the speed thereof, toinitiate dynamic braking thereof to a selected needle-up or needle-downposition and to initiate a thread trimming operation. The drive systemdisclosed in the patent of Dutko et al may be modified to a belt drivearrangement as is shown in the above referenced patent of Wendel, andmay have a mechanical brake attached thereto, as disclosed in the U.S.Pat. No. 3,667,413 of Kleinschmidt et al, which is hereby incorporatedby reference and made a part of this application. The above referencedpatent of Dutko et al, discloses sensors to indicate an up position ofthe sewing needle 52 out of a work material and to indicate a downposition thereof. There are also disclosed speed sensors from which maybe obtained a determination of rotational speed of the sewing machine50. The information obtained from these sensors may be transferred tothe computer 72, and will be used by the computer as conditions forinitiating other actions of component parts of the sewing system 40. Forexample, the drive system disclosed in the referenced patent of Dutko etal, is operated by the foot treadle 65 for variable speed by variableforward depression thereof from a neutral position; and, as dislcosed inthe patent of Dutko et al, may be heeled or rotated in a reversedirection to effect a thread trimming function, the neutral conditioncausing the computer 72 to initiate commands to dynamically brake thedrive system to a speed of approximately 400 RPM followed by mechanicalbraking to a needle-down position, and the heel position causing thecomputer to initiate commands serially to perform a last tack, to driveand mechanically brake to a needle-up position while performing thethread trimming operation. The computer 72 may also be used to controlthe speed of the sewing machine 50 by utilizing the speed sensing devicedisclosed in the Dutko et al patent as will be explained below.

Further reference may also be had to the U.S. Pat. No. 3,715,642, ofWalter, which is hereby incorporated by reference and made a part ofthis application. This patent of Walter is a further referencedisclosing a DC motor having speed sensors, position sensors, variablespeed drive and capability to include thread trimming functions.Imposition of a stable reference voltage in place of the variablereference voltage of the Walter patent provides a fixed sewing machinespeed, and the computer 72 may be utilized to implement the requiredstable voltages for the required periods.

Any of a number of thread trimming devices may be incorporated in thismachine, one such device being that disclosed in U.S. Pat. No.3,776,161, issud Dec. 4, 1973 to Papajewski et al, which is herebyincorporated by reference and made a part of this application.

The control module 83 and control panel 85 is, as stated above,electrically connected with the computer 72 supported behind the fronthinged panel 59. The control panel 85 is, preferably, of a "dead front"form, that is, only those displays of instant concern to an operator arevisible. In FIG. 3, is shown an elevation of the control panel 85,indicating by cross-hatching the displays which may become visible to asewing machine operator by lighting devices within the control panel asdetermined by the computer 72 supported behind the front hinged panel59. The windows 87-90 in the control panel 85 are used to displaynumerical digits, or alphabetic instructions, such as the word "SEW", asdirected by the computer 72. Adjacent the windows 87-90, a "menu" isdisplayed in two columns of nine items each. In column 1, 92 and incolumn 2, 94 a single item at a time is lit, and represents a requestfrom the computer 72 for instructions from a sewing operator. In thisarrangement of a "dead front" panel in which a single operatorinstruction is requested at one time, the machine operator is ledthrough a programming sequence without the complexities normallyinherent in such an operation. Further particulars on each item in the"menu" will be explained below, from which it may be seen how anoperator may be led readily and naturally through a programmingoperation.

All of the displays on the control panel 85, with the exception of thewindows 87-90 and the "menu" column 1, 92 and column 2, 94, receiveinformation from the operator to be acted on by the computer 72. Thesedisplays are, generally, switches which place the sewing system in thevarious modes of operation, or modify the displays in the windows 87-90,and/or call on the computer 72 to perform certain acts. These switchesin the displays are, ideally, activated by a proximity detectorresponsive to the presence of an operator's finger. Thus, those displayswhich are placed in the active mode and made visible to an operator bythe computer 72, will respond to the presence of an operator's finger toconvey to the computer the selected action desired. Once again it isapparent that the various functions may be as readily implemented byslides or toggle switches, however, by use of a "dead front" panel,operator direction and guidance may be most effectively implemented.

Referring to FIG. 1, the control panel 85 is shown as it would appearafter the main power switch 75 has been turned on. The control panel 85in FIG. 1 is shown in the Initialization Mode Entry. In thisInitialization Mode Entry, the operator is required to select one of theseven entry modes by touching the appropriate display pad with a finger.By reference to FIG. 3, it can be seen that the entry display padsilluminated by the computer 72 are Automatic Sew (AS) 116, AutomaticLearn (AL) 118, Control Sew (CS) 120, Key Learn (KL) 122, Manual Sew(MS) 124, Set Up (S) 126, and Clear Memory (Erase) (E) 128. In FIG. 2,is shown a state chart for the Initialization Mode Entry and Set UpMode, indicating the condition which causes the computer 72 to initiatethe action(s) required to obtain the various states(condition/action(S)). In some cases, in the state charts discussedbelow, no action is shown because none is required, or the action is avery common one and is not there repeated for the sake of simplicity.Thus, when the main power switch 75 is turned on, the sewin system 40 isin the INI state. If the sewing machine 50 has the sewing needle 52thereof in an up position (NUP condition) the sewing system 40 revertsto the INI 2 state. If the sewing needle 52 is not in an up position(NUP condition), this information is conveyed by the sensors in thedrive system, disclosed in the above referenced U.S. Pat. No. 3,573,581,to the computer 72 which initiates commands to the drive system to bringthe needle to an up position (RNUP Action). Thus, as disclosed in theabove referenced patent, the motor may be driven in a soft start, or ina high speed inhibit mode, until a needle-up position sensor determinesthat the sewing needle 52 is in an up position, the conveying of thisinformation to the computer 72 causing the computer to output a secondsignal activating the mechanical brake (RMBRK Action). At the completionof this operation the sewing system 40 is in the INI 2 state.

The MENTRY state is achieved after a determination of the Up optionstate, relative to the condition of the presser foot 53, which will bemore fully explained in a discussion of the Set Up Mode of operationbelow. The conrol panel 85 in FIG. 1, which is shown more clearly inFIG. 3, is in the MENTRY state wherein the illumination of the displaypads is indicated by cross-hatching. As was explained above, thosedisplay pads shown cross-hatched in FIG. 3 are touch control padssensitive to the presence of an operator's finger by any of many wellknown techniques, serving thereby to signal the computer 72 that aspecific one of the display pads placed in the active state by thecomputer has been selected. The discussion below will proceed assumingthat an operator has selected the Set Up display pad 126.

The Code to the Mode Select Keys, appearing as conditions in the statecharts, is given in the table below:

    ______________________________________                                        S  SET UP   MS MANUAL SEW  KL KEY LEARN                                       AL AUTO LEARN                                                                             CS CONTROL SEW AS AUTO SEW                                        E CLEAR MEM QT QUIT        REPAIR REPAIR                                      ______________________________________                                    

In the Set Up Mode of operation, a variety of instructions may beimpressed upon a memory of the computer 72, which are common to and willfacilitate operation of the sewing system 40 in the other modes ofoperation. Thus, for example, at the end of a complete sewing cyclethere may be a command from the computer 72 to raise the presser foot 53of the sewing machine 50 to facilitate work removal therefrom. If an Upoption of the presser foot 53 has been selected, symbolized by thecondition UPOPT in the Initialization Mode state chart of FIG. 2, thesewing system 40 would terminate a sewing cycle or enter the MENTRYstate with the presser foot elevated. Maximum speed of operation of thesewing machine 50 may also be selected. A complete discussion of the SetUp Mode of operation is given below with reference to FIG. 5 and asshown in the state chart of FIG. 2.

With the selection of the Set Up Mode of operation, the computer 72 willdeactivate the other display touch pads illustrated in FIG. 3 except forthe Set Up touch pad 126, and will begin requesting a series ofinstructions of the operator from columns 92 and 94, by illuminating oneselected item at a time from the "menu". Simultaneously, the computer 72will activate and illuminate Enter display touch pad 130, and selectedSlew touch pads 132-139 depending on the item of the "menu" selected(see FIG. 5).

The operation of the Slew touch pads 132-139 is indicated in the Slewstate charts of FIGS. 4A and 4B. The "A" Slew touch pads 132, 133 areeffective, when illuminated and made active by the computer 72, toincrement or decrement a digit displayed in the window 87 of the controlpanel 85, or to change a word, such as PEAK or COPY, displayed in thewindows 87-90. The digit displayed is incremented upwardly by touchingthe "A" Slew touch pad 132, and is decremented downwardly by touchingthe "A" Slew touch pad 133. Digits displayed in the windows 88, 89, 90of the control panel 85 are similarly varied by the "B" Slew touch pads134, 135, "C" Slew touch pads 136, 137, and "D" Slew touch pads 138,139, respectively.

If the sewing system 40 is in a particular state where slewing may berequired, and a Slew touch pad has been touched which has beenilluminated and made active by the computer 72, the current stateaddress is saved, and routines are initiated by the computer toincrement or decrement the displayed digit in one-half second intervalsin a slew loop (SLOOP). On removal of the touch from the Slew touch pad,the current state address is retreived and used as a return address toreturn the sewing system 40 to the current state in its original mode ofoperation.

As seen in FIG. 5, Quit touch pad 142 is also activated and caused to bedisplayed by the computer 72, and may be touched by an operator at anytime during the Set Up Mode of operation to revert the sewing system 40to the MENTRY state shown in FIG. 3. It will be understood that the Quittouch pad 142 is illuminated and made active by the computer 72 in anystate of any mode of operation from which an operator may desire torevert to the MENTRY state. In this way, an operator retains ultimatecontrol over the sewing system 40 and is not required to completeunnecessary or undesired operations.

Thus, when the Set Up Mode of operation is selected by an operator'stouching of the Set Up touch pad 126 when the sewing system 40 is in theMENTRY state shown in FIG. 3, the computer 72 will display the Set Uptouch pad 126, and will activate and display the Enter touch pad 130,the Quit touch pad 142, the "D" Slew touch pads 138, 139; and willilluminate a Start Stitch request 144 in the column 94 along with adigital display in the window 90. An operator is requested to select thenumber of stitches at the start of the sewing cycle where the sewingmachine 50 will sew at a reduced speed for greater control. The numberof start stitches displayed in the window 90 of the control panel 85 maybe incremented by an operator's touching of the "D" Slew touch pad 138,and may be decremented by an operator's touching of the "D" Slew touchpad 139. When the desired digit is displayed in the window 90 of thecontrol panel 85, an operator's touching of the Enter touch pad 130 willcause the digit then displayed in the window 90 to be entered in amemory of the computer 72, and the computer will remove the illuminationfrom the Start Stitch request 144, and illuminate a Start Speed request146 in the column 94, along with a digital display in the window 90. The"D" Slew touch pads 138, 139 will be illuminated and made active by thecomputer 72 along with digital display in window 90.

The digits thus displayed in the window 90 of the control panel 85 willbe representative of speeds in the high speed inhibit or soft start modeof operation disclosed in the above referenced U.S. Patents relative todrive systems. An operator may increment up to a desired start speed bycontinued touching of the "D" Slew touch pad 138 until the desired digitis displayed. Decrementing the displayed speed may be implemented by theoperator's touching the "D" Slew touch pad 139. The selected digit inwindow 90 may be entered into the memory of the computer 72 by theoperator touching the Enter touch pad 130. The computer 72 willthereupon remove the illumination from the Start Speed request 146 andilluminate a Stop Stitch request 148.

At this point an operator determines the number of stitches desiredbefore the end of a segment, where the machine slows down to apreselected speed and is under the control of the operator in order toend the segment at a precise point. A segment is defined to end wheneverthe presser foot 53 of the sewing machine 50 is raised, as, for example,when a corner of the fabric to be stitched upon is reached and thefabric must be pivoted to stitch in a new direction, or at thetermination of stitching operation. An operator may compensate for thevariability in how the sewing machine 50 feeds the fabric by placing thefoot treadle 65 in a neutral position to terminate stitching of thesewing machine 50 when the end of the stitching line is reached,regardless of the number of stop stitches called for by the computer 72.

The entry of the number of stop stitches desired and the stop speedrequested by illumination of a Stop Speed request 150 after the numberof stop stitches has been entered, is identical to the entry of startstitches and start speed described above and need not be describedfurther. After the desired stop speed has been entered into the memoryof the computer 72 by touching of the Enter touch pad 130, the computer72 illuminates the Speed Mode request 152. Concurrent with illuminationof the Speed Mode request 152, the windows 87-90 in the control panel 85display either the word "PEAK", or the word "COPY". The "A" Slew touchpads 132, 133 are also illuminated and placed in an active state by thecomputer 72, to permit an operator to touch either pad to change to thedesired word. If the word "COPY" is selected, the computer 72 willoperate the drive system for the sewing machine 50 in the Automatic SewMode (Auto Sew) at the speed at which learned in the Automatic LearningMode (Auto Learn) with a copy of the speed variations introduced by anoperator in selective depression of the foot treadle 65. Where the word"PEAK" is selected, the sewing system 40, in the Auto Sew Mode, will sewat a uniform speed which is the highest recorded in each segment. Theselected mode is entered into the memory of the computer 72 by atouching of the Enter touch pad 130.

Thereupon, illumination will be removed from the Speed Mode request 152and a Corrections request 154 will be illuminated by the computer 72.Concurrently "A" Slew touch pads 132, 133 will be illuminated and placedin the active state by the computer 72, which will also place the word"YES" in the windows 88-90 of the control panel 85 or the word "NO" inthe windows 89-90 thereof. If the word "YES" is selected, then when thesewing system 40 is in the Auto Sew Mode of operation, an operator willbe requested by the computer 72, through the control panel 85, whethershe wishes to make an alteration to the sew speed, pivot delay time orto the stitch count. Where no corrections are authorized, the sewingmachie 50 will be operated precisely as first programmed. A change froma "YES" to "NO" may be accomplished by touching either of the "A" Slewtouch pads 132, 133. When the correct display is observed in the windows88-90 of the control panel 85, this information may be entered into thememory of the computer 72 by touching the Enter touch pad 130.

Thereupon, the Corrections request 154 will have the illuminationremoved therefrom, and a Press Foot request 156 will be illuminated.Concurrently, the "A" Slew touch pads 132, 133 will be illuminated andmade active by the computer 72, and the windows 87-90 in the controlpanel will display the word "DOWN", or the word "UP". At this point, anoperator of the sewing system 40 may specify if the presser foot 53 isto be elevated or left lowered at the termination of the sewing cycle,symbolically indicated by UPOPT or UPOPT, respectively, in FIG. 2 and inthe other state charts. The display in windows 87-90 of the controlpanel 85 may be changed by touching either of the "A" Slew touch pads132, 133, and the desired information entered into the memory of thecomputer 72 by touching the Enter touch pad 130.

Thereupon, the computer 72 will remove the illumination from the PressFoot request 156 and illuminate a Display request 158. The words "LAST"or "ZERO" will be displayed in the windows 87-90 of the control panel85. The "A" Slew touch pads 132, 133 will also be illuminated and madeactive by the computer 72. A selection here permits either the last itementered, such as a style, operation or size, to come up in the windows87-90 of the control panel 85; or instructs the computer 72 that thedigits to be displayed in those windows should be all zeros, withoperator selection to be made by use of the Slew touch pads 132-139which are applicable in any given case. When the desired word is visiblein the windows 87-90 of the control panel 85, this information may beentered into the memory of the computer 72 by touching of the Entertouch pad 130.

Thereupon, the illumination will be removed from the Display request158, the Size request 160 will be illuminated and the "A" Slew touchpads 132, 133 will be illuminated and made active by the computer 72.The windows 87-90 of the control panel 85 will display the word "INCH",or, the abbreviation "CM". The word displayed in the windows 87-90 ofthe control panel 85 may be changed by touching of either "A" Slew touchpads 132, 133. This selection permits using metric sizes or inch(including half sizes) and small, medium, large, extra large, and extraextra large. The selected word may be entered into the memory of thecomputer 72 by touching the Enter touch pad 130.

Simultaneously, the computer 72 removes the illumination from the Sizerequest 160 and illuminates a Max Speed request 162. The "B" Slew touchpads 134, 135, "C" Slew touch pads 136, 137, and "D" Slew touch pads138, 139 are illuminated and made active by the computer 72; and thewindows 88-90 of the control panel 85 will display digits representativeof the maximum speed of the sewing machine 50 to which full forwarddepression of the foot treadle 65 will be effective. The digitsdisplayed in the windows 88-90 of the control panel 85 may beincremented or decremented by an operator's touching of the respective"B", "C" or "D" Slew touch pads 134-139. When the desired digits aredisplayed in the windows 88-90 of the control panel 85, this informationmay be entered into the memory of the computer 72 by touching of theEnter touch pad 130.

Thereupon, the computer 72 having the various instructions impressedupon its memory, will automatically revert the sewing system 40 to theMENTRY state from which any other mode of operation of the sewing systemmay be selected to be controlled by the parameters introduced in thisSet Up Mode. The control panel 85 once again appears as is shown in FIG.3, with only those touch pads visible, which are illuminated and madeactive by the computer 72. The process just described is shown in thestate chart of the Initialization Mode, FIG. 2, wherein the Set Up Modeof operation is selected from the MENTRY state by an operator touchingthe Set Up touch pad 126 (condition S). The progression through the SetUp Mode is shown in the column beginning with Set 1 and ending with Set10 where, on entry of maximum speed, the sewing system 40 reverts to theMENTRY state. From the MENTRY state any mode of operation of the sewingsystem 40 may be selected including the Set Up Mode just described. Allthe parameters introduced in the Set Up Mode may be updated at any timewithout requiring changes to the sewing cycles impressed in the memoryof the computer 72. In FIG. 2, there is also shown the ABORT state, towhich the sewing system 40 reverts whenever there is a loss of a powerphase, or whenever the sewing maching 50 is tilted back for service asdetermined by a mercury switch.

The Code to Conditions in the state charts to be described is given inthe table below.

    __________________________________________________________________________    UPOPT  IF PRESSER FOOT UP/DOWN OPTION = `UP`                                  TIMER  IF TIMER HAS EXPIRED                                                   MEMFUL IF PATTERN MEMORY IS SUFFICIENTLY FULL THAT                                   IT IS UNLIKELY A NEW PATTERN WILL FIT                                  TOOFUL PATTERN MEMORY IS ABSOLUTELY FULL                                      NOSTY  IF NO PATTERN IS PRESENT IN THE LIBRARY                                       HAVING THE SPECIFIED STYLE                                             NOOPR  IF NO PATTERN IS PRESENT IN THE LIBRARY                                       HAVING THE SPECIFIED STYLE AND OPERATION                               NOSIZ  IF NO PATTERN IS PRESENT IN THE LIBRARY                                       HAVING THE SPECIFIED STYLE, OPERATION, AND                                    SIZE                                                                   SEGCNT IF THE # OF STITCHES IN THE CURRENT SEGMENT                                   HAS BEEN SEWN                                                          STST   IF THE # OF START STITCHES IN THE CURRENT                                     SEGMENT HAS BEEN SEWN                                                  SPST   IF THE # OF STITCHES IS WITHIN THE END OF                                     SEGMENT STOPPING RANGE                                                 SLOWST IF THE # OF STITCHES IS WITHIN THE END OF                                     SEGMENT SLOWDOWN RANGE                                                 LSEG   IF THE CURRENT SEGMENT IS THE LAST SEGMENT                                    FOR THE CURRENT LIBRARY ENTRY                                          FSEG   IF THE CURRENT SEGMENT IS THE FIRST SEGMENT                                   FOR THE CURRENT LIBRARY ENTRY                                          NOCOR  IF THE CORRECTIONS OPTION IS SET TO `NO`                               PSEUDO IF THE CURRENT SEGMENT IS A PSEUDO SEGMENT                                      SENSORS                                                              TRD    IF THE TREADLE IS PRESSED IN THE SEW POSITION                          NTL    IF THE TREADLE IS IN THE NEUTRAL POSITION                              HEEL   IF THE TREADLE IS IN THE HEEL POSITION                                 PFTSW  IF THE PRESSER FOOT LIFT SWITCH IS ACTIVATED                           NUPSW  IF THE NEEDLE UP REQUEST SWITCH IS ACTIVATED                           JOGSW  IF THE JOG REQUEST (SINGLE STITCH) SWITCH IS                                  ACTIVATED                                                              NDN    IF THE NEEDLE IS IN THE DOWN POSITION (IN                                     THE FABRIC)                                                            NUP    IF THE NEEDLE IS IN THE UP POSITION                                    (SYMBOL)                                                                             (SYMBOL) IS NOT IN THE DESIGNATED POSITION                              The Code to Actions (routines) initiated in the computer                     72 in response to the conditions set forth above, is given in                 the table below. -                                                            RPFTUP RAISE PRESSER FOOT                                                     RLOPN  BEGIN A LIBRARY ENTRY: SET STITCHES AND                                       SEGMENT COUNT = 0                                                      RLADD  ADD ONE SPEED SEGMENT TO THE LIBRARY AND                                      CREATE PSEUDO SEGMENTS IF NECESSARY                                    RLCLO  TERMINATE A LIBRARY ENTER, DELETE PREVIOUS                                    ENTRY IF NECESSARY AND ADJUST FOR PEAK OR                                     COPY SPEED MODE                                                        RLSRCH SEARCH THE LIBRARY FOR THE SPECIFIED STYLE,                                   OPERATION, AND SIZE: IF FOUND, SET FIRST                                      TACK, LAST TACK, AND START STITCH VALUE TO                                    THOSE IN THE LIBRARY                                                   RSEWST SEW AT START SPEED LIMITED BY MAX SPEED VALUE                          RSEWA  SEW AT SPECIFIED SEW SPEED LIMITED BY MAX                                     SPEED VALUE                                                            RNSEG  ADVANCE TO THE NEXT SEGMENT IN THE LIBRARY:                                   GET THE NEW SPEED AND STITCH COUNT VALUES.                                    SEGMENT COUNT + 1                                                      RSEWSP SEW AT STOP SPEED LIMITED BY MAX SPEED VALUE                           RNDLY  SET THE TIMER FOR THE CORRESPONDING LIBRARY                                   PIVOT DELAY                                                            RMDLY  COPY CURRENT PIVOT DELAY VALUE INTO THE                                       CURRENT LIBRARY SEGMENT                                                RMCNT  COPY STITCH AMOUNT INTO THE CURRENT LIBRARY                                   SEGMENT                                                                RMSPD  COPY SEW SPEED INTO THE CURRENT LIBRARY SEGMENT                        RERSIZ ERASE LIBRARY ENTRY HAVING THE SPECIFIED STYLE,                               OPERATION, SIZE                                                        RSPMON MONITOR SEW SPEED AND MAKE LIBRARY ENTRIES                                    AS REQUIRED                                                            RTIMEZ SET THE TIMER WITH VALUE 0                                             RDLY   COMPUTE ELAPSED PIVOT DELAY TIME AND CONVERT                                  TO SCALE OF 1-7                                                        RNUP   DRIVE AT POSITION SPEED UNTIL NEEDLE IN UP                                    POSITION                                                               RGETBT INITIALIZE FIRST TACK, LAST TACK AND START                                    STITCH VALUES TO THOSE LAST USED IN MANUAL                                    SEW MODE                                                               RSTOBT SAVE FIRST TACK, LAST TACK, AND START STITCH                                  VALUE FOR MANUAL SEW MODE                                              RPFTDN LOWER PRESSER FOOT AND WAIT 150 MS.                                    RFT    PERFORM THE FIRST TACK USING THE SPECIFIED                                    NUMBER OF STITCHES                                                     RSEWM  SEW MANUALLY UNDER TREADLE CONTROL AND LIMIT                                  THE SPEED TO THE MAXIMUM SPEED VALUE                                   RDYNB  APPLY THE DYNAMIC BRAKE UNTIL RPM=400 OR LESS                          RNDN   DRIVE TO NEEDLE DOWN                                                   RBOUN  WAIT 50 MS TO PROVIDE SWITCH DE-BOUNCE                                 RMBRK  APPLY THE MECHANICAL BRAKE FOR 64 MS                                   RLT    PERFORM THE LAST TACK USING THE SPECIFIED                                     NUMBER OF STITCHES                                                     RTRIM  PERFORM THE TRIM AND WIPE SEQUENCE                                     RSSC   INITIALIZE THE LIBRARY SEARCH VALUES                                   RTIMEA SET THE TIMER FOR 1 SECOND                                             RNSTY  SEARCH THE LIBRARY FOR THE NEXT LARGEST STYLE                          RTIMEB SET THE TIME FOR .5 SECOND                                             RNOPR  SEARCH THE LIBRARY FOR THE NEXT LARGEST                                       OPERATION HAVING THE SAME STYLE                                        RNSIZ  SEARCH THE LIBRARY FOR THE NEXT LARGEST SIZE                                  HAVING THE SAME STYLE AND OPERATION                                    RLIBBT SEARCH THE LIBRARY FOR THE SPECIFIED STYLE,                                   OPERATION AND SIZE: IF FOUND, SET FIRST                                       TACK, LAST TACK AND START STITCH VALUES TO                                    THOSE IN THE LIBRARY                                                   RPSSLZ SET SEW SPEED = 1 PIVOT DELAY = 0, STITCHES =                                 0                                                                      RSEWC  SEW USING THE TREADLE LIMITED BY MAX SPEED                                    AND THE SELECTED SEW SPEED                                             __________________________________________________________________________

Referring to FIG. 2, it may be seen that the Manual Sew Mode ofoperation may be selected by specifying to the computer 72 in the MENTRYstate the condition, Manual Sew (MS). This is accomplished by anoperator touching the Manual Sew touch pad 124 of the control panel asshown in FIG. 3. The condition of an operator's touching the Manual Sewtouch pad 124 calls upon the computer 72 to initiate the action ofrequesting backtack information of an operator.

MANUAL SEW MODE OF OPERATION

In FIG. 6, the Manual Sew state chart is shown. From the MENTRY state,the sewing system 40 goes into the MEFT state, the control panel 85appearing as is shown in FIG. 7. As indicated in the MEFT baloon, theManual Sew touch pad 124 and a First Tack request 165 are illuminated bythe computer 72. In addition, the Enter touch pad 130 and the "D" Slewtouch pads 138, 139 are illuminated and made active by the computer 72,so that digits displayed in the windows 89-90 of the control panel 85,indicative of the number of first tack locking stitches desired, may bevaried and entered into the memory of the computer. The first tack andlast tack described below, are backtacks wherein a selected number ofstitches are made with the sewing machine 50 feeding in the onedirection, and an equal number of stitches are made in the otherdirection to return to the starting point. They are used as lockingstitches, and to strengthen the beginning and the end of a seam. TheQuit touch pad 142 is also illuminated and made active by the computer72, as it is in all states for every mode of machine operation, so thatan operator may at any time revert to the MENTRY state of the sewingsystem 40, from which a selection of any other mode of operation may bemade. After a selection of the number of stitches in the first tack ismade by an operator and entered into the memory of the computer 72 bytouching of the Enter touch pad 130, this condition (FT) places thesewing system 40 in the MELT state wherein illumination is removed fromthe First Tack request 165 and a Last Tack request 167 is illuminated,requesting from an operator the number of locking stitches desired atthe end of a sewing cycle. The control panel 85 appears as it does inFIG. 7 except for illumination of the Last Tack request 167 in place ofthe First Tack request 165.

After the desired number of locking stitches for the last tack isselected by an operator and entered into the memory of the computer 72by touching of the Enter touch pad 130 (condition LT), the sewing system40 is in the MTACT state, wherein all the controls of the sewing machine50, including the foot treadle 65, are responsive to the actions of anoperator. The condition of actuation of the presser foot elevatingswitch 77 (PFTSW), by way of the knee shift device 80, calls upon thecomputer 72 to initiate a routine raising the presser foot and, toprevent a false reading thereof, to not read the switch until afterbounce of the switch contacts ceases. The sewing system 40 is then inthe MPFTUP state shown in FIG. 6. The condition of nonactuation of thepresser foot switch 77, indicated in FIG. 6 by PFTSW, calls upon thecomputer 72 to initiate a routine lowering the presser foot 53. A heeldepression condition of the foot treadle 65 by an operator calls uponthe computer 72 to initiate a routine to raise the presser foot 53 and,as described above, debounce the switch to prevent a false readingthereof. The sewing system 40 is then in the MPFUH state shown in FIG.6. If the Up option for the presser foot 53 had been selected in the SetUp Mode when requested by the Press Foot request 156, the MPFUH statewill revert to the MTACT state. If the Up option for the presser foot 53was not selected, the removal of the heel condition of the foot treadle65, indicated by HEEL in FIG. 6, will initiate a routine in the computer72 to return the presser foot to a down position, returning the sewingsystem 40 to the MTACT state.

Where the foot treadle 65 is depressed forwardly, a condition indicatedby TRD in the state chart of FIG. 6, the computer 72 serially initiatesroutines to lower the presser foot 53, to lower the sewing needle 52 toa position to start the first stitch, to accomplish the first tack fromthe information previously entered in the memory of the computer and toestablish nominal values for pivot delay and sew speed and to initialize(at zero) the number of stitches sewn. Each routine follows thecompletion of the prior routine as sensed or determined by the computer72.

The sewing system 40 is in the MSTST state where the number of startstitches specified in the Set Up Mode described above, are stitched andcounted by the computer 72. The condition of the foot treadle 65 beingdepressed but the number of start stitches specified not having beencompleted, symbolized by TRD . STST in FIG. 6, continues to call uponthe computer 72 to initiate the routine for sewing start stitches. Thisis indicated by the loop leaving the MSTST state and reentering thatstate. When a number of start stitches requested by the computer 72 havebeen completed, symbolized by STST, continued actuation of the foottreadle 65 places the sewing system 40 in the MSMAN state; and furtherstitching takes place in that state as indicated by the loop coming backon the MSMAN state having the TRD condition. Discontinuing forwarddepression of the foot treadle 65, symbolized by TRD in the statecharts, initiates a routine in the computer 72 calling for theapplication of dynamic braking by the drive system of the sewing machine50 to a speed of approximately 400 RPM. The sewing system 40 is in theMSP state in the diagram of FIG. 6. Maintaining the foot treadle 65 in aneutral position after the speed of the drive system has been reduced toabout 400 RPM, will cause the computer 72 to initiate a routine to sensewhen the sewing needle 52 is in the down position and to initiate aroutine to activate the mechanical brake stopping the drive system withthe sewing needle in that position. At this point the sewing system 40is in the MPAUS state shown in FIG. 6. Where the foot treadle 65 isdepressed forwardly by the toe of an operator, the condition TRD, thesewing system 40 will revert to the MSMAN state. Where the foot treadle65 is thrown into a heel condition by pressure from the heel of anoperator, the computer 72 serially initiates routines placing the sewingneedle 52 in a down position, implementing the last tack previouslyrequested by an operator, mechanically braking the drive system of thesewing machine 50 with the sewing needle down, effecting a trimmingoperation of the sewing threads while driving the sewing needle to an upposition, and raising the presser foot 53 to an elevated position tofacilitate removal of the fabric. The sewing system 40 is then in theMPFUH state, and will return to the MTACT state when the foot treadle 65is removed from the heel position, or if the Up option for the presserfoot 53 has been selected as has been described above. From the MPAUSstate shown in FIG. 6, operation of the presser foot elevating switch77, through actuation of the knee shift device 80 by an operator, willcall upon the computer 72 to initiate a routine to raise the presserfoot 53 of the sewing machine 50 and a routine to debounce the switch.The sewing system 40 will then be in the MPPUP state shown in FIG. 6.Release by the operator of the knee shift device 80, represented by thecondition PFTSW, causes the computer 72 to initiate a routine to lowerthe presser foot 53 of the sewing machine 50, and the sewing system 40will revert to the MPAUS state. Where an operator actuates the needle-uppositioning switch 70 by a lateral toe motion, this condition requeststhe computer 72 to initiate routines to drive the sewing needle 52 in anup position and to mechanically brake the drive system of the sewingmachine 50 when the needle 52 is in an up position. The sewing system 40is then in the MNUP state of FIG. 6. On removal of pressure from theneedle-up positioning switch 70, symbolically indicated by NUPSW, thecomputer 72 initiates a routine to debounce the switch to forestall afalse actuation reading. If an operator actuates the jog switch 68,mounted on the foot treadle 65, by a lateral toe motion, this conditionrequests the computer 72 to serially initiate routines directing thesewing machine 50 to make one stitch and stop. When the jog switch 68 isactuated by an operator, the sewing system 40 is in the MJOG state ofFIG. 6. On removal of pressure from the jog switch 68, a conditionindicated in FIG. 6 by JOGSW, the computer 72 initiates a debounceroutine to forestall any false reading of jog switch actuation.

In the above description of the Manual Sew Mode of operation, it isapparent that the computer 72 may initiate routines that are notnecessary. As an example, when coming out of the MTACT state to theMSTST state, the condition of forward treadle depression calls upon thecomputer 72 to initiate a routine for lowering the presser foot 53. Ifin the set Up Mode of operation, the down position had been requested,the presser foot 53 will already be in the down position when the sewingsystem 40 is in the MTACT state. The routine initiated by the computer72 to the lower the presser foot will, in this event, be surplusage, butis included to insure that the presser foot 53 is in a lowered conditionwhen in the MSTST state. Where the Up option had been selected in theSet Up Mode, however, the routine initiated by the computer 72 to lowerthe presser foot is required as a first step in operation of the sewingmachine 50. It is also apparent that a heel condition of the foottreadle 65 can take place from the MTACT state without having thecomputer 72 initiate routines for having the sewing machine 50 perform alast tack, activate mechanical brake, trim the sewing thread and raisethe presser foot. The computer 72 is programmed not to initiate thoseroutines unless at least one stitch has been sewn. Thereby, if nostitching has been accomplished, an operator retains flexibility forraising the presser foot 53 of the sewing machine 50, either by way ofknee shift device 80 or by a heel condition of the foot treadle 65.

After a stitching cycle of at least one stitch has been completed byimposition of a heel condition of the foot treadle 65, the sewingmachine 50 returns to the MTACT state immediately if the Up option hasbeen selected in the Set Up Mode of operation, or, if the Up option hasnot been selected, whenever the foot treadle 65 is returned from a heelcondition, as is indicated symbolically in FIG. 6 by HEEL. From theMTACT state, another manual sewing cycle may be initiated, or, by anoperator's touching the Quit touch pad 142, the sewing system 40 isreverted to the MENTRY state from which any other mode of operation maybe selected. In the latter case the control panel 85 will appear as isshown in FIG. 3, wherein the touch pads 116, 118, 120, 122, 124, 126,and 128 for the seven modes of operation are illuminated and made activeby the computer 72.

AUTO LEARN MODE OF OPERATION

By an operators placing her finger on the Auto Learn touch pad 118, thesewing system 40 passes from the MENTRY state shown in FIG. 2, to the LEstate shown in FIG. 8. If the memory in the computer 72 is full andunable to store another program, a condition indicated symbolically byMEMFUL, the sewing system reverts immediately to the LEARNE state shownin FIG. 9, where the word FULL is displayed in the windows 87-90 of thecontrol panel 85, the Clear Memory (Erase) touch pad 128 is illuminatedand a buzzer is actuated. This serves to signal an operator that thememory of the computer 72 is full, and that she must go to a ClearMemory (Erase) Mode of operation in order to remove information from thememory so as to provide room for the new information. An operator mayproceed from the LEARNE state to an Erase Mode, which will be describedbelow, by touching the Clear Memory (Erase) touch pad 128.

Where the memory of the computer 72 is not full and is able to storeadditional information, a condition indicated symbolically by MEMFUL,the computer initiates a routine to initialize search values. It will berecalled that during the Set Up Mode of operation, a Display request 158requested, by way of the words "LAST" or "ZERO" in the windows 87-90 ofthe control panel 85, whether the operator wished the last item enteredto be displayed or wished the display to come up all zeros. A routine toinitialize search values, originating in the computer 72, is responsiveto that selection in the Set Up Mode of operation.

The sewing system 40 is now in the LESTY state, with the control panel85 appearing as shown in FIG. 11. The display in the control panel 85shown in FIG. 11, assumes that the LAST option was chosen for thedisplay selected in the Set Up Mode of operation. Thus the windows 87-90in the control panel 85 display the last style entered. If the Zerooption had been chosen during the Set Up Mode of operation, the windows87-90 of the control panel 85 would display all zeros. In the LESTYstate, the control panel 85 has the Auto Learn touch pad 118illuminated, the Slew touch pads 132-139 illuminated and made active toenable an operator to vary the display in the windows 87-90, and theEnter touch pad 130 illuminated and made active, so that selected digitsmay be stored in the memory of the computer 72. A Style request 169 isilluminated by the computer 72 advising an operator that the digitsdisplayed in the windows 87-90 and entered in the memory of the computer72 are the first part of an address to the memory for a sewing cyclewhich will be learned by the machine. As in most other states of thesewing system 40, the Quit touch pad 142 is illuminated and made activein order to enable an operator at any time to revert to the MENTRYstate.

The operation of the Enter touch pad 130 in the LESTY state is somewhatmodified by the computer 72 in order to facilitate the placing ofinformation in a desired location in the memory of the computer. If theEnter touch pad 130 is touched by an operator while the sewing system 40is in the LESTY state, the computer 72 initiates a routine setting atimer to measure the duration of touching of the Enter touch pad. If thetime duration exceeds an amount of approximately one second, theduration becomes a condition requesting the computer 72 to initiate aroutine to search for the next style in the memory, and to initiate aroutine setting a timer to display the style so found. If the Entertouch pad 130 continues to be touched by an operator, the process isrepeated with the digits displayed in the windows 87-90 of the controlpanel 85 indicating all styles existing in the memory of the computer72. This process is indicated in the state chart of FIG. 8 by theprogression from the LESTY state to the LHSTY state during which thetouched time duration is being measured, and if the touched timeduration exceeds a specified time A, the computer 72 initiates a routineto search for the next style and a routine to display the next style fora timed duration B. If the Enter touch pad 130 continues to be touchedby an operator, the sewing system 40 is in the LSSTY state wherein thewindows 87-90 continue to display digits of styles already in the memoryof the computer 72. If an operator ceases to touch the Enter touch pad130, symbolically indicated by STY, the particular digits displayed inthe windows 87-90 of the control panel 85 at that time, will remain ondisplay. The sewing system 40 is then in the LESTY state. The operatormay slew the digits displayed in the window 90 of the control panel 85by use of the appropriate Slew touch pads 132-139. If the Enter touchpad 130 is touched momentarily, symbolically indicated by STY, thesewing system 40 progresses from the LESTY state to the LHSTY state, andbecause the time duration A has not been exceeded, the sewing systemproceeds to the LEOPR state.

In the LEOPR state, the computer 72 removes the illumination from theStyle request 169, and illuminates an Operation request 171, requestingan operation address for the memory of the computer 72. The controlpanel 85 will appear substantially as shown in FIG. 11 except that theOperation request 171 will be illuminated and the Style request 169 willnot be illuminated. The selection of digits representative of theoperation to be learned is made identically to the selection of thestyle digits. In FIG. 8, the OPR indicates the condition of the Entertouch pad 130 being touched by an operator. The condition OPR symbolizesan Enter touch pad 130 which had been touched by an operator for lessthan a time duration A, or which had the touching thereof ceased. Whenthe correct digits are displayed in the windows 87-90 of the controlpanel 85, a momentary touch of the Enter touch pad 130 by the operatorwill place the sewing system 40 in the LESIZ state shown in FIG. 8. Thecontrol panel 85 appears as is shown in FIG. 11, except that the Stylerequest 169 is not illuminated, and a Size request 173 is illuminated bythe computer 72. Selection of size is identical to the selection ofstyle described above. Where the Enter touch pad 130 is momentarilytouched by an operator, a condidtion symbolically indicated by SIZ inFIG. 8, the computer 72 enters the size displayed and initiates aroutine for requesting backtack information, and for setting thedisplays in the windows 89-90 of the control panel 85 according to theselected LAST/ZERO request by Display request 158 during the Set Up Modeof operation described above.

When the desired size information is entered into the memory of thecomputer 72 in a fashion similar to that discussed above for the entryof style information, a complete address to the memory of the computer72 has been supplied; and the sewing system 40 is in the LEFT stateshown in FIG. 8. The control panel 85 with the sewing system 40 in theLEFT state will appear as shown in FIG. 11 with however the illuminationremoved from the Style request 169 and with a First Tack request 175illuminated by the computer 72. Also, only the Slew touch pads 138 and139 will be illuminated and made active by the computer 72 and thewindows 89-90 will display digits according to the LAST/ZERO selectionmade in the Set Up Mode described above. The number of initial lockingstitches desired may be displayed in the windows 89-90 of the controlpanel 85 as explained above, with entry into the memory of the computer72 achieved by touching of the Enter touch pad 130 by the operator. Uponentry of the first tack (FT) information to the memory of the computer72, the computer advances the sewing system 40 into the LELT state. Inthis state the control panel 85 has a Last Tack request 177 illuminatedby the computer 72 in place of the First Tack request 175, therebyrequesting of an operator the number of final locking stitches desired.When this information is entered into the memory of the computer 72 byan operator touching the Enter touch pad 130, the sewing system 40enters the LTACT state, wherein the foot treadle 65 is active to controlthe operation of the sewing machine 50. Referring to FIG. 8, the sewingmachine in the LTACT state mmay be brought to a LPFTUP state byactuation of the presser foot switch 77 thru the knee shift device 80,or by a heel condition of the foot treadle 65, both of which conditionsinitiate routines in the computer 72 to raise the presser foot 53 of thesewing machine 50 and to debounce the switch by time delay as explainedabove, to prevent false readings thereof. The sewing system 40 stays inthe LPFTUP state as long as the presser foot switch 77 is acutated or aslong as the heel condition of the foot treadle 65 is maintained, assymbolized by the loop from and returning to the LPFTUP state. If theheel condition of the foot treadle 65 is removed, or the actuation ofthe presser foot switch 77 is removed, symbolized by HEEL or PFTSW,repsectively, the computer 72 initiates a routine to lower the presserfoot 53. As explained in the Manual Sew Mode above, a heel condition ofthe foot treadle 65 is not effective to initiate termination of a sewingcycle unless at least one stitch has been sewn. Therefore, a heelcondition of the foot treadle 65 may be utilized before stitching toraise the presser foot 53 of the sewing machine 50.

With the sewing system 40 in the LTACT state, the control panel 85 wouldappear as is shown in FIG. 12. The windows 88-90 of the control panel 85display the word "SEW". The Quit touch pad 142 is illuminated and madeactive to permit an operator at any time to revert to the MENTRY state.Referring to FIG. 8, it can be seen that forward depression of the foottreadle 65, symbolically indicated by TRD, causes the computer 72 toinitiate routines serially for lowering the presser foot 53 of thesewing machine 50, for placing the sewing needle 52 thereof in a downposition from which all stitching begins, for stitching the series oflocking stitches requested as first tack, for initializing values ofpivot delay and sew speed and stitch count, and for opening a temporarymemory (library). The sewing system 40 is now in the LSEW state. Oncontinued forward rotation of the foot treadle 65, the sewing system 40remains in the LSEW state and the computer 72 initiates routinesactivating the sewing machine drive system, reading the speed demandedby the foot treadle 65, limiting speed to Max Speed specified in the SetUp Mode, and monitoring speed to obtain an approximation of the actualspeed profile of the sewing machine 50. The speed of the sewing machine50 is monitored in the Copy Mode and recorded in steps of number ofsewing stitches performed within a speed range which is one of manyranges in a speed table covering the total sewing machine speedcapability. The various ranges of the speed table are impressed in thememory of the computer 72, along with an algorithm which is responsiveto the speed sensor of the drive system to select the proper range forrecording. In this way, if the "COPY" option was selected in the Set UpMode of operation described above, later automatic reproduction of thesewing cycle may be accomplished at a copy of the speed profile learnedin this the learning cycle. If the "PEAK" option is selected, thecomputer 72 effects automatic reproduction of the sewing cycle at thepeak speed range attained for each segment.

The variable speed profile recording algorithm is part of the computer72 software that is described hereinbelow and made part of thisapplication as an appendix. Reference to FIG. 24, which is describedhereinbelow in detail, shows a potentiometer 402 the wiper arm 408 ofwhich is coupled to and actuated by the treadle 65. Accordingly,actuation of the treadle 65 produces an analog voltage at the wiper arm408 that is proportional to the desired sewing speed. This analogvoltage is coupled to the computer 72 by way of the computer 72 terminalC16. As will be apparent to those skilled in the art, the time constantof the sewing machine 50 drive motor prevents the actual sewing speedfrom corresponding exactly to changes in the desired sewing speed asevidenced by movement of the treadle 65. In other words, the actualsewing speed will generally lag the desired sewing speed when thetreadle 65 is moved.

The basic rules of the variable speed profile recording algorithm arethat when the speed of the sewing machine drive motor causes the actualsewing speed to become essentially the same as the then desired treadle65 sewing speed, the speed is recorded for a psuedo segment just ended;and if successive desired treadle sewing speed values do not differ bysome suitable quantum when the actual sewing speed is essentially thesame, a new pseudo segment is not formed. A pseudo segment therefore, isthe number of complete sewing stitches that occur between the time thetreadle sewing speed value changes significantly (a change of 1 in ascale of 1 to 15, for example.) from a previously recorded speed anduntil the actual sewing speed is essentially the same as the thensignificantly changed treadle sewing speed. The recorded sewing speedfor any pseudo segment is a constant and is the sewing speed at the endof the pseudo segment when the actual sewing speed corresponds to thethen treadle sewing speed value. This is accomplished in accordance withthe present invention by the programmed computer 72 which utilizes asoftware digital filter to simulate the actual speed of the sewingmachine 50 drive motor (and, therefore, actual sewing speed) in responseto the voltage magnitude on the wiper arm 408, which corresponds to thedesired sewing speed. The programmed computer 72 will then compare theactual sewing speed with the desired sewing speed and, when they areessentially the same, record the speed at the end of the pseudo segmentand the number of sewing stitches in the pseudo segment if, as describedabove, a significant treadle speed change has occurred since the lastspeed recorded.

As will now be apparent, the first pseudo segment of any sewing segmentwill be the number of sewing stitches that occur between the time thatsewing starts and until the actual sewing speed is essentially the sameas the then treadle sewing speed value. The recorded speed for thisfirst pseudo segment is the sewing speed at the end of the first pseudosegment i.e. the sewing speed at which actual sewing speed wasessentially the same as the then treadle value of sewing speed. Asubsequent pseudo segment being recorded is dependent upon actual sewingspeed being essentially the same as the then treadle value of sewingspeed that is significantly different from the sewing speed recorded forthe first pseudo segment. As will now be apparent, the sewing speedprofile is stored in the computer 72 as a number (at least one) ofpseudo segments with each pseudo segment including a fixed sewing speedand a number of sewing stitches. The number of pseudo segments needed torecord the speed profile of any sewing segment depends upon the sewingspeed characteristics of the operator performing the sewing segment.However, the algorithm described above enables complex sewing speedprofiles to be recorded with relatively few pseudo segments therebyminimizing the memory capacity within the computer 72 needed to storethese speed profiles. In the Auto Sew Mode of operation described below,the stored sewing speed profile is automatically reproduced. Even thoughthe speed profile is stored in the computer 72 as discreet speed values,by applying these stored values to a digital to analog converter 406(FIG. 24) and then applying the resulting analog signal to the sewingmachine 50 drive motor by way of the sewing machine 50 terminal S14, theactual sewing speed profile performed in the Auto Learn Mode issubstantially faithfully reproduced in the Auto Sew Mode of operation.

The appended program listing is described in detail hereinbelow. Forthose interested, however, the speed profile algorithm can be found inthe program listing beginning at program statement number 1000.78 (MotorSpeed Simulation) and ending at program statement number 1000.129, andbeginning at program statement 5000.792 (Speed Monitor Routine) andending at program statement number 5000.906.

Where forward depression of the foot treadle 65 ceases from the LSEWstate, symbolically indicated by TRD in FIG. 8, the computer 72initiates routines to dynamically brake the sewing machine 50 to a speedof approximately 400 RPM and when this is accomplished, as detected byspeed sensors in the drive system, to mechanically brake the drivesystem of the sewing machine 50 with the needle 52 thereof in a downposition. The sewing system is then in the LPAUS state shown in FIG. 8.As described above in the Manual Sew Mode of operation, the needle-uppositioning switch 70 may be activated by the toe of an operator tobring the sewing needle 52 of the sewing machine 50 to an up positionand place the sewing system 40 in the LNUP state shown in FIG. 8. Thejog switch 68 may also be activated by the toe of an operator to causethe sewing machine 50 to place a single stitch in the LJOG state shownin FIG. 8. In the Auto Learn Mode of operation of the sewing system 40,however, actuation of the jog switch is recoreded in the memory of thecomputer 72 as an additional stitch count. Actuation of the presser footelevating switch 77, by an operator manipulating knee shift device 80,causes the computer 72 to initiate routines to raise the presser foot 53and to measure the time duration of the presser foot 53 in the raisedcondition. The sewing system 40 is in the LDELAY state of FIG. 8.Discontinuance of actuation of the presser foot elevating switch 77,indicated symbolically in FIG. 8 by a PFTSW, causes the computer 72 toinitiate routines to compute the elapsed time and to lower the presserfoot 53 of the sewing machine 50. The sewing system 50 reverts to theLPAUS state as shown in FIG. 8. If the foot treadle 65 is reactivatedfrom the LPAU state shown in FIG. 8, a condition indicated by the TRD inFIG. 8, the computer 72 initiates routines adding the previoustemporarily recorded information of sewing machine component operation,time duration, stitch counts and speeds to the permanent memory in thecomputer, and resetting the pivot delay and sew speed values to nominalvalues and the stitch count to zero. The sewing system 40 is once againin the LSEW state shown in FIG. 8 where further stitching operations maybe performed. When the sewing system 40 is in the LPAUS state shown inFIG. 8, and the foot treadle 65 is placed in a heel condition, therehaving been at least one stitch made, the computer 72 initiates routinesadding the temporarily recorded stitch counts, sew speeds, time delaysand other sewing machine component operations into the permanent memoryof the computer and preventing access of other information to the memoryat that address, and initiates the other routines explained in theManual Sew Mode of operation above which direct the sewing machine 50 tostitch the last tack, cut the threads and raise the presser foot 53 toan elevated condition. The sewing system 40 is in the LHEEL state shownin FIG. 8.

The lines from the LPAUS state and the LHEEL state marked with thecondition TOOFUL, indicate a condition at that address of the memory ofthe computer 72 of insufficient storage capability to accept furtherinformation for a segment. The sewing system 40 will, in that case,revert to the LEARNE state shown in FIG. 9.

With the sewing system 40 in the LHEEL state shown in FIG. 8, where theUp option for the presser foot 53 was selected in the Set Up Mode ofoperation described above, the presser foot is raised to an elevatedcondition and the control panel 85 appears as is shown in FIG. 13 withthe Auto Sew touch pad 116, the Control Sew touch pad 120 and the Quittouch pad 142 illuminated and made active by the computer 72, to permitan operator to select either of those modes of operation or to quit andrevert to the MENTRY state shown in FIG. 2. The sewing system 40 is inthe SEWSEL state shown in FIG. 10. Similarly, where the Up option forthe presser foot 53 had not been selected, the computer 72 initiates aroutine to lower the presser foot, the control panel 85 still appearingas shown in FIG. 13.

Thus, in the Auto Learn Mode of operation, an operator specifies to thememory of the computer 72 an address location where a series ofcomponent operations, time delays, stitch counts and speed ranges atwhich effected, may be entered. The sewing system 40 is arranged so thatthe computer 72 is responsive to conditions of operator actuated controlof the sewing system, including those on control panel 85, to initiatecommands for further internal actions in the computer or externalactions for component operation. In the Auto Learn Mode, the sewingsystem 40 may be operated by an operator as a normal industrial sewingmachine, without regard for the various states in FIG. 14 in which thesewing system is placed. However, the sewing system 40 "learns" allthose things performed by an operator in completing a sewing cycle,except for the actual guiding of the work material. At the completion ofthe sewing cycle, the sewing system 40 is in the SEWSEL state shown inFIG. 10 from which a selection of Auto Sew or Control Sew Modes ofoperation may be made.

KEY LEARN MODE OF OPERATION

In FIG. 14 is shown the state chart of the sewing system 40 in the KeyLearn Mode of operation. The Key Learn Mode of operation is entered fromthe MENTRY state shown in FIG. 2 by an operator touching the Key Learntouch pad 122 of the control panel 85 while in the MENTRY state, wherethe control panel 85 appears as shown in FIG. 3. The Key Learn Mode ofoperation of the sewing system 40 is similar to the Auto Learn Mode ofoperation with the provision, however, for an operator to enter adesired sewing speed into the memory of the computer 72 directly andwithout regard to the actual speed of the stitching operation. Anoperator may also specify pivot delay time, that is, the amount of timeduring which the sewing needle 52 is in a down position extendingthrough a work material, and the presser foot 53 is in an elevated stateaway from the work material, permitting the operator to rotate clothabout the needle preparatory to laying a new line of stitching. The KeyLearn Mode of operation, therefore, permits an operator to perform theactual stitching operations at a slower rate of speed during which ahigh degree of care may be exercised while obtaining automatic playbackat a faster rate of speed. Conversely, a rapid execution by a skilledoperator may be played back at a slower rate for a trainee.

By a comparison of the Key Learn state chart of FIG. 14 with the AutoLearn state chart of FIG. 8, it will be noted that there are two treadleactive states, KTACT1 and KTACT2, in the Key Learn Mode of operation.Associated with the two treadle active states, KTACT1 and KTACT2, thereare the states, KESS1 and KESS2, wherein an operator is requested toselect sew speed. There is also a KPVDEL state wherein an operator isrequested to specify the pivot delay time by the computer 72 for thememory thereof. Thus, after the last tack information is entered in theKELT state, corresponding to the LELT state in the Auto Learn Mode ofoperation, the sewing system 40 is in the KESS1 state shown in FIG. 14wherein the control panel 85 appears as is shown in FIG. 15. The KeyLearn touch pad 122 and a Sew Speed request 179 are illuminated by thecomputer 72. The Quit touch pad 142 is also illuminated and made activeby the computer 72 so that an operator may at any time revert to theMENTRY state. The "D" Slew touch pads 138, 139 are illuminated and madeactive by the computer 72, so that an operator may increment ordecrement digits displayed in windows 89-90 of the control panel 85. Thedigits in the windows 89-90 of the control panel 85 are indicative of aproportion of the sewing machine speed up to the maximum speed selectedby an operator in response to the Max Speed request 162 in the Set UpMode of operation described above. The sew speed displayed in thewindows 89-90 of the control panel 85 is entered into the memory of thecomputer 72 by touching the Enter touch pad 130, which is alsoilluminated and made active by the computer, or, when an operatoractivates the foot treadle 65 of the sewing system 40. The operation ofthe sewing system 40 in the KESS2 state shown in FIG. 14, or in theKPAUS state where sew speed is also requested by illumination of the SewSpeed request 179, is similar to that described for the KESS1 state;however, entering of the sew speed places the sewing system 40 in theKTACT2 state because the computer 72 is not required to initiateroutines to implement the first tack or opening of the memory (library)in the computer. Where the presser foot switch 77 is activated byoperator manipulation of the knee shift device 80, the sewing system 40goes to the KPVDEL state. The control panel 85 appears as is shown inFIG. 15, except that the Sew Speed request 179 has the illuminationremoved therefrom by the computer 72, which illuminates a Pivot Delayrequest 181; requesting of an operator the desired pivot delay time tobe entered into the memory of the computer. When the desired pivot delaytime is entered into the memory of the computer 72 by the operatortouching the Enter touch pad 130, the computer initiates routines toenter the previous sewing information into the memory of the computerand to set all display values for pivot delay, sew speed and stitches tonominal values.

Thus, as was explained above, the sewing system 40 in the Key Learn Modeof operation may have values for sewing speed and pivot delayartifically entered into the memory of the computer 72 for apredetermined playback speed irrespective of the actual speed ofoperation in this Key Learn Mode. In this fashion a skilled operator mayrapidly prepare a complete sewing cycle which may be used in theAutomatic Mode of operation by relatively unskilled operators. After thecompletion of a sewing cycle in the Key Learn Mode of operation, thesewing system 40 is in the SEWSEL state shown in FIG. 10.

AUTO SEW MODE OF OPERATION:

In FIGS. 16A through C, there are the state charts of the sewing system40 in the Auto Sew Mode of operation. Entry into the Auto Sew Mode ofoperation is obtained from the MENTRY state shown in FIG. 2, wherein thecontrol panel 85 appears as is shown in FIG. 3; or from the SEWSEL stateafter the completion of a sewing cycle in the Auto Learn or Key LearnModes of operation. When the control panel 85 appears as is shown inFIG. 3, the sewing system 40 may be placed in the Auto Sew Mode ofoperation by an operator's touching the Auto Sew touch pad 116. As shownin the Initialization Mode Entry state chart of FIG. 2, the condition oftouching the Auto Sew touch pad 116 causes the computer 72 to initiate aroutine to initialize search values for style, operation and sizeaccording to the Last or Zero option chosen during the Set Up Modedescribed above. Where the Last option was chosen in the Set Up Mode,the control panel 85 may appear as is shown in FIG. 17, wherein thewindows 87-90 of the control panel display a style number mostpreviously used. The computer 72 has illuminated the Auto Sew touch pad116 and the Style request 169. The computer 72 has also illuminated andmade active the Slew touch pads 132-139, the Enter touch pad 130, theClear Memory touch pad 128 and the Quit touch pad 142. Thereby anoperator may increment or decrement the digits displayed in the windows87-90 of the control panel 85 by touching of the Slew touch control pads132-139, and may enter the style so displayed by momentarily touchingthe Enter touch pad 130, or may revert to the MENTRY state by touchingthe Quit touch pad 142 or may go to the Erase Mode of operation to bedescribed below, by touching the Clear Memory touch pad 128.

By reference to the state chart of FIG. 16A, it is apparent that aftertouching the Auto Sew touch pad 116 from the MENTRY state of FIG. 2, thesewing system 40 is in the AESTY state. As explained above, a touchingof the Enter touch pad 130 is indicated symbolically by STY in the statecharts, and cessation of touch is symbolized by STY. The selection ofstyle, operation, and size is as explained above with, however, anadditional state, ANOSTY. wherein the Auto Sew touch pad 116 is causedto blink on and off by the computer 72 to indicate a condition of nosuch displayed style in the memory of the computer. This state of thesewing system 40 is required to indicate to an operator that there is nodata in the memory of the computer 72 corresponding to that specificstyle which could be used to operate the sewing system 40. Similarstates exist for selection of operation (ANOOPR) and for selection ofsize (ANOSIZ).

Assuming a desired style, operation and size exist and are recorded inthe memory of the computer 72, and have been selected in a processidentical to that discussed above for the Auto Learn Mode of operation,the sewing system 40 enters the AVER state. The AVER state may also beentered from SEWSEL shown in FIG. 10 and deriving from the Auto LearnMode of operation or the Key Learn Mode of operation. The computer 72initiates a routine searching the memory (library) for an address entrymatching the style, operation, and size values and to obtain thebacktack values entered during the Auto Learn Mode of operation or theKey Learn Mode of operation. If the Up option for the presser foot 53has been selected in the Set Up Mode of operation, the computer 72 willalso initiate a routine to raise the presser foot to an elevatedposition. The sewing system 40 is now in the ATACTl state shown in FIG.16A. In the ATACTl state the control panel 85 appears as is shown inFIG. 18 with the windows 88-90 therefore displaying the word "SEW". Thecomputer 72 has illuminated the Auto Sew touch pad 116, and illuminatedand made active the Quit touch pad 142 as well as a Repair touch pad183. The Repair touch pad 183 permits an operator to leave the AutomaticAuto Sew Mode and go into a Manual Sewing Mode for complete manualcontrol of all sewing instrumentalities in order to repair or finish anarticle, and to return to the Auto Sew state from which entry wasachieved. The Repair Mode of operation will be more fully describedbelow.

In the ATACTl state, the foot treadle 65 becomes an ON-OFF switch onforward depression thereof, for operator control of the sewing system40. Forward depression of the foot treadle 65 places the sewing system40 under the control of the computer 72 according to information placedin the memory thereof in the Set Up, Auto Learn and Key Learn Modes ofoperation. By returning the foot treadle 65 to a neutral position, anoperation may cause automatic operation of the sewing system 40, to takeany reqired action as will be explained below.

From the ATACTl state, by placing the foot treadle 65 in a heelcondition or by activation of the presser foot switch 77, by means ofthe knee shift device 80, an operator may raise the presser foot 53 toan elevated state for insertion of a work material. The sewing system 40is then in the APFUP state shown in FIG. 16A. The pressure foot 53 maybe lowered by returning the foot treadle 65 to a neutral position or byforward depression thereof, symbolically indicated by HEEL, or byreleasing the presser foot switch 77, symbolized by PFTSW. With thesewing system in the ATACTl state shown in FIG. 16A, forward depressionof the foot treadle 65 by an operator will cause the computer 72 toinitiate routines to lower the presser foot 53, to place the sewingneedle 52 in a down position, to search the memory of the computer forthe first tack information, to implement the first tack and to obtaininformation for the next segment from the memory (library). The routinefor the first tack activates the sewing system 40 to accomplish thenumber of first tack stitches requested in either the Auto Learn or theKey Learn Modes of operation described above. This routine also inhibitsthe high speed of the drive system of the sewing machine 50, twostitches before stitching direction is reversed.

After the first tack is accomplished, the sewing system 40 is in theASTSEG state shown in FIG. 16B. In the ASTSEG state, the sewing system40 responds to information stored in the first segment of the memory.For a slow stitch condition, as when coming to a stop, the computer 72initiates a routine applying a dynamic braking to the drive system ofthe sewing machine 50, and the sewing system 40 is in the ASLOW statewhere the speed is limited to approximately 400 RPM. Where the firstsegment condition is not to apply, as when a second or later segment isbeing performed, symbolically indicated by FSEG; or where the startstitches specified in the Set Up Mode have been completed, symbolicallyindicated by STST, the computer 72 initiates a routine copying sewingspeed (COPY), or running at peak sewing speed (PEAK), and the sewingsystem 40 is in the ASEW state. Again, as explained above, for a slowstitch condition the computer 72 initiates a routine to dynamicallybrake the drive system, and the sewing system 40 is again in the ASLOWstate. With the condition of a low segment count, i.e., all stitches inthis segment have been sewn, the computer 72 initiates a routine settingthe needle 52 in a down state and activating the mechanical brake tostop the drive system of the sewing machine 50 there, placing the sewingsystem in the AEND state shown in FIG. 16C. As explained above, asegment terminates when the presser foot 53 of the sewing machine 50 iselevated to an up condition.

The condition of this not being the last segment of the sewing cycle,symbolized by LSEG in FIG. 16C, causes the computer 72 to initiateroutines to obtain the pivot delay value from the memory of the computerand to raise the presser foot 53 of the sewing machine 50 to an upposition. The sewing system 40 is in the APVDLY state shown in FIG. 16C.The condition of forward depression of the foot treadle 65 of the sewingsystem 40, and of expiration of the pivot delay time causes the computer72 to initiate routines to advance the memory thereof to the next memory(library) segment to copy the new speed and number of stitches and tolower the presser foot 53 of the sewing machine 50 to a down state. Thesewing system 40 is once again in the ASTSEG state shown in FIG. 16B.

Since this is not the first segment, a condition indicated by FSEG, thecomputer 72 will initiate a routine setting the sewing speed to thespeed obtained from the memory, and the sewing system 40 will be in theASEW state shown in FIG. 16B. If in the Auto Learn Mode, the sewingsystem 40 had been run at a variable speed, the computer 72 will composepseudo segments of a fixed speed for a certain number of stitches andhaving a pivot delay time of zero. During the performance of the pseudosegments, the sewing system 40 is in the ASEWPS state shown in FIG. 16B.At the completion of the stitch count for the pseudo segment, thecomputer 72 initiates routines requesting the next segment and settingthe stitch count and the sewing speed at the new values for the nextsegment. The sewing system 40 reverts to the ASEW state shown in FIG.16B. If the next segment is a pseudo segment the sewing system 40reverts once again to the ASEWPS state shown in FIG. 16B. In thisfashion a "COPY" of sewing speed in the Auto Learn or Key Learn Modes ofoperation may be accomplished.

After the completion of the pseudo segments the sewing system 40 revertsto the ASEW state and may pass to the ASLOW state and to the AEND statein preparation for a pivot delay or for the next segment. If there is nonext segment, and no stop stitches have been specified in the Set UpMode described above, these conditions causes the computer 72 toinitiate routines implementing the last tack, a mechanical braking ofthe drive system of the sewing machine 50, a trim operation, and araising of the presser foot 53 of the sewing machine. The sewing system40 is now in the AWNTL state and will revert to the ATACT1 state inreadiness for another automatic sewing cycle.

Where stop stitches have been specified in the Set Up Mode describedabove, this condition causes the sewing system 40 in the ASEW state toinitiate routines dynamically braking the drive system of the sewingmachine 50 to the stop speed specified in the Set Up Mode of operationfor accomplishment of the stop stitches. The sewing machine then revertsto the AMAN state in FIG. 16C when the number of stop stitches specifiedin the Set Up Mode of operation are accomplished. If the foot treadle 65of the sewing system 40 is placed in a neutral position, symbolicallyindicated by NTL, the computer 72 initiates routines dynamically brakingthe drive system of the sewing machine 50 to a speed of approximately400 RPM, and the sewing system is in the AMANSP state shown in FIG. 16C.Where the number of stop stitches specified in the Set Up Mode describedabove have not been accomplished, forward depression of the foot treadle65 will cause the computer 72 to initiate a routine to have the drivesystem for the sewing machine 50 operate at the stop speed specified inthe Set Up Mode of operation unitl the number of stop stitches specifiedin that Mode of operation is completed. Continued non-actuation of thefoot treadle 65 (NTL) when the sewing system 40 is in the AMANSP stateshown in FIG. 16C, will cause the computer 72 to initiate routines tomechanically brake the drive system of the sewing machine 50 with thesewing needle 52 thereof in a down position. The sewing system 40 is inthe AEND state shown in FIG. 16C, and will progress to the AWNTL stateand the ACTACT1 state, as described above, in preparation for anothersewing cycle.

Where a last segment has been stitched, representing the completion of astitching cycle on, for example, a pocket, it may be that the number ofstitches required in the last segment is different than that requiredduring the Auto Learn Mode of operation. In order to permit an operatorto vary the number of stitches specified in a last segment, the computer72 of the sewing system 40 in the ATACT1 state, will illuminate a StitchCount request 185 in the control panel 85, requesting of an operatormodifications to the stitch count displayed in windows 89-90 of thecontrol panel, by suitable touching of the Slew touch pads 138, 139which are illuminated and made active by the computer. The sewing system40 is in the ALSEG state shown in FIG. 16A. If the stitch countdisplayed in the windows 89-90 of the control panel 85 are satisfactory,the sewing system 40 may revert to the ATACT1 state by forwarddepression or heeling of the foot treadle 65, or by actuation of thepresser foot switch 77, through the knee shift device 80. If the stitchcount displayed in the windows 89-90 of the control panel 85 is to bemodified the digits displayed may be incremented or decremented bytouching of the Slew touch pads 138, 139, and the new digits displayedmay be entered by touching of the Enter touch pad 130. The sewing system40 is in the AMODST state shown in FIG. 16A, and will revert to theRepair Mode of operation to be described below, by an operators touchingthe Repair touch pad 183. Alternatively, an operator may enter theRepair Mode of operation from the ALSEG state without modification ofthe stitch count.

Referring once again to FIG. 16B, it will be noted that there is aAPAUS1 state which may be reached from the ASTSEG, ASEW, ASEWPS stateswhenever the foot treadle 65 is returned to a neutral position. Thesewing system 40 in the Auto Sew Mode is under the ultimate control ofthe operator, who, by placing the foot treadle 65 in a neutral positioncauses the computer 72 to initiate routines dynamically braking thedrive system of the sewing machine 50 to an approximate speed of 400 RPMand mechanically braking the drive system with the sewing needle 52 in adown position. In the APAUS1 state, the computer 72 requests, byillumination of Sew Speed request 179, whether the operator desires tochange the sew speed. Where the No Correction option was selected duringthe Set Up Mode of operation described above, the Sew Speed request 179is not illuminated and the sewing system 40 reverts immediately to theAPS1N state shown in FIG. 16B; and, on forward depression of the foottreadle 65, will revert to the ASTSEG state.

In the APAUS1 state, an operator may, if desired and if corrections arepermitted, vary the digits displayed in the windows 89-90 of the controlpanel 85, by touching of Slew touch pads 138, 139 to increment ordecrement the digits thus displayed. The digits displayed in the windows89-90 of the control panel 85 are entered into the memory of thecomputer 72 by forward depression of the foot treadle 65 which causesthe computer to initiate a routine modifying the speed in the memory.The sewing machine is again in the ASTSEG state shown in FIG. 16B. Ifthe sew speed displayed in the windows 89-90 of the control panel 85 ismodified, but this information is entered into the memory of thecomputer 72 by an operators touching the Enter touch pad 130 instead ofby forward depression of the foot treadle 65, the computer initiates aroutine modifying the sew speed in the memory, and places the sewingsystem 40 in the APS1S state shown in FIG. 16C. In the APS1S state thePivot Delay request 181 is illuminated by the computer 72, and Slewtouch pads 138, 139 are illuminated and made active, thereby to permitan operator to vary the displayed pivot delay time. An altered pivotdelay time is entered into the memory of the computer 72 by actuation ofthe foot treadle 65, and the sewing system 40 is once again in theASTSEG state. In the APAUS1, APS1N, and APS1S states shown in FIGS. 16Band C, the needle-up positioning switch 70, jog switch 68 and presserfoot elevating switch 77 may be actuated to accomplish the variouscomponent operations as described above. Also, from these states a heelcondition of the foot treadle will terminate the sewing cycle and placethe sewing system 40 in the AWNTL state in FIG. 16C. If, in the Set UpMode of operation, the PEAK speed mode had been selected, the peak speedis proportioned according to the increase or decrease in the digitsdisplayed, limited by the maximum speed specified in the Set Up Mode. Ifthe COPY speed mode has been selected, the speed for the particularpseudo segment in which the APAUS1 state was entered is proportioned.

From the APVDLY state shown in FIG. 16C and described above,non-actuation of the foot treadle 65 (NTL) will place the sewing system40 in the APS2 state. Where the No Corrections option was selected inthe Set Up Mode described above, the sewing system 40 revertsimmediately to the APS2N state. However, where the YES option toCorrections was selected the sewing system 40 remains in the APS2 state,wherein windows 89-90 of the control panel 85 would indicate the presentstitch count, and the Slew touch pads 138, 139 are illuminated and madeactive by the computer 72 to permit an operator to modify the stitchcount. From the APS2 state the jog switch 68, needle-up positioningswitch 70 and presser foot switch 77 may all be actuated as describedabove. Where the stitch count is modified and entered by an operatortouching Enter touch pad 130, the computer 72 initiates a routine tomodify the count in the memory of the computer, and the sewing system 40is in the APS2N state of FIG. 16C. In the APS2N state the jog switch 68,needle-up positioning switch 70 and presser foot elevating switch 77 maybe actuated as described above. Upon forward depression of the foottreadle 65 in the APS2N state the computer 72 initiates routinesrequesting the next segment and lowering the presser foot 53 to a downposition. The sewing system is then in the ASTSEG state. Where thesewing system 40 is in the APS2 state and the stitch count is modified,actuation of the foot treadle 65 will initiate routines in the computer72 to modify the stitch count in the memory, to request the next segmentand to lower the presser foot 53 to a down position, and the sewingsystem 40 will be in the ASTSEG state. A heel condition of the foottreadle 65 in the APS2 and APS2N states will terminate the sewing cycle,and the sewing system 40 reverts to the AWNTL state in FIG. 16C.

Thus in the Auto Sew Mode of operation, an entire automatic cycle ofsewing operations is possible including first tack and start stitches atspecified speeds, sewing segments terminating in a specific pivot delaywith the presser foot 53 elevated and the sewing needle 52 in a downposition in the work material to permit an operator to establish a newstitching direction, and provision for stop stitches in last segment anda last tack terminating in a trim operation for the stitching threads.Provision has also been made enabling an operator to modify the stitchcount in any segment, and in the last segment so that succeeding sewingcycles may be more accurately made. While in the Auto Sew Mode, operatorflexibility is retained by permitting the foot treadle 65 to be used totemporarily cease operations. While the foot treadle 65 is in theneutral position an operator may raise the presser foot 53 or the needle52 to an up position, or may lay single stitch or go into a Repair Modeof operation, or in an appropriate circumstance may lay a single stitch.In the APAUS1 state, which is obtainable by a neutral position of thefoot treadle 65 from the sewing states, sew speed may be modified ifcorrections were permitted in the Set Up Mode of operation. Entry of anew sewing speed is most readily accommodated in the APAUS1 state byforward depression of the foot treadle which also returns the sewingsystem 40 to a sewing state. If, however, an operator desires to varythe pivot delay time, entry of a modified sewing speed may beaccommodated by touching the Enter touch pad 130, which places thesewing system 40 in the APS1S state, wherein pivot delay time may bevaried. Thus, where modifications are permitted, they can be made in themost natural way with ready and obvious reentry to a sewing state.

CONTROL SEW MODE OF OPERATION

In FIGS. 19A-C are shown the state charts for the Control Sew Mode ofoperation. In the Control Sew Mode of operation the speed of the sewingmachine 50, up to the maximum learned in any segment is controlled by anoperator depending on how far the foot treadle 65 is depressed. Also, ata pivot, the sewing machine 50 automatically stops. An operator mustreturn the foot treadle 65 to a neutral position and depress it for themachine to start on the next segment. The neutral condition of the foottreadle 65 will, as in the Auto Sew Mode, stop all automatic operationof the sewing system 40 for operator control thereof.

The state charts for the Control Sew Mode of operation reflect thesevariations from the Auto Sew Mode of operation. Thus in FIG. 19B, withthe sewing system 40 in the CSTSEG state where on the condition of startstitches having been specified in the Set Up Mode of operation describedabove, the computer 72 initiates a routine to read the position of thefoot treadle 65 for control of the speed of the drive system of thesewing machine 50 which is limited by the maximum speed value and therecorded sewing speed value. Similar routines are initiated by thecomputer 72 in the CSEW state and in the CSEWPS state for effectingpseudo segments. It will be noted in FIG. 19C that there is no statecorresponding to the APS1S state of FIG. 16C, described above, whereinan operator could specify new pivot delay times. Since in the ControlSew Mode of operation, the sewing machine 50 stops at a pivot point andfurther operator action is required to reinitiate stitching, the pivotdelay period is already under operator control. Thus in the Control SewMode of operation additional control is given to an operator, over theAuto Sew Mode of operation, of the speed at which the sewing machine 50operates. Otherwise, the sewing system 40 operates quite similarly tothe Auto Sew Mode in the Control Sew Mode. In FIG. 20, is shown anelevation of the control panel 85 with the sewing system 40 in theCTACT1 state of FIG. 19A.

CLEAR MEMORY MODE OF OPERATION

In FIG. 21 is shown a state chart of the sewing system 40 in the ClearMemory or Erase Mode. Entry to the Erase Mode of operation is achievedfrom the MENTRY state of FIG. 2, by touching the Clear Memory touch pad128 of the control panel 85 shown in FIG. 3. The necessity for enteringthe Erase Mode of operation is indicated by the LEARNE state of FIG. 9,the state to which the sewing system 40 reverts for a MEMFUL conditionor a TOOFUL condition. The MEMFUL condition exists when there is no roomin the memory of the computer 72 for another program. A TOOFUL conditionexists when the memory of the computer 72 has insufficient room to storeanother segment. A MEMFUL condition or TOOFUL condition may exist duringthe Auto Learn or the Key Learn Modes of operation, and these conditionsare shown in the state charts of FIGS. 8 and 14. In the LEARNE state thecontrol panel 85 displays in the windows 87-90 thereof the word FULL.The Clear Memory touch pad 128 is illuminated and made active, and abuzzer is activated to give audible indication of this state. Entry tothe Erase Mode of operation is achieved by touching the Clear Memorytouch pad 128 in either the MENTRY state or the LEARNE state, and thecontrol panel appears as is shown in FIG. 11 except that the ClearMemory touch pad 128 is illuminated in place of the Auto Learn touch pad118. Clearing of the memory of the computer 72 may be obtained in ahierarchy, that is, if a particular style is erased all operations andsizes existing in the memory under that style will be erased. In FIG.21, when an operators finger is removed from the Clear Memory touch pad128 in the initial selection of the Clear Memory or Erase Mode ofoperation, the sewing system 40 is in the EESTY1 state, where the laststyle used by the operator may be displayed in the windows 87-90 of thecontrol panel 85. If the operator desires to erase that style and alloperations and sizes thereunder, the condition of a touching of theClear Memory touch pad 128 by an operator, will cause the computer 72 toinitiate a routine to erase from the memory of the computer alloperations and sizes under that style number. The sewing system 40 is inthe ERSTY state shown in FIG. 21, where the condition of there beingpatterns in the memory having the specified style, symbolized by NOSTY,will reinitiate the erase command until all operations and sizes underthat style are erased. The sewing system 40 wil then be in the EEHELDstate and will revert to the MENTRY state only after an operators fingeris removed from the Clear Memory touch pad 128. The condition of nopattern in the memory having the specified style (NOSTY) causes thecomputer 72 to initiate a routine to search the memory for the nextstyle in the EESTY state.

Selection of a particular style, operation or size to be cleared fromthe memory of the computer 72, proceeds as described above in the AutoLearn Mode of operation. Thus, an operator may continuously touch theEnter touch pad 130 in order to scan the memory of the computer 72 forall available styles therein. The condition of an operators touching ofthe Enter touch pad 130 (STY) causes the computer 72 to initiate aroutine setting a timer for a one second period. The sewing system 40 isin the EHSTY state, and the conditions of the expiration of the onesection period (TIMER) and presence of pattern information in the memoryof the computer 72 (NOSTY) causes the computer to initiate routines tosearch the memory for the next style and display for half secondintervals. The sewing system 40 is in the ESSTY state shown in FIG. 21.The sewing system 40 will also revert to the ESSTY state if an attemptwas made to further specify an operation for a style having no patternpresent in the memory (NOSTY). In the ESSTY state the computer 72displays in the windows 87-90 of the control panel 85 those styles thatare present in the memory, in half second intervals. Where an operatorremoves her finger from the Enter touch pad 130, a condition symbolizedby STY, the sewing system 40 reverts to the EESTY1 state, wherein thewindows 87-90 of the control panel 85 display the last style scanned. Ifan operator then touches the Enter touch pad 130 momentarily, acondition symbolized by STY, NOSTY, the sewing system passes into theEEOPR state wherein an operator may, in a similar fashion as explainedabove, erase in a hierarchy all sizes under the style previouslydisplayed and the operation presently displayed. With the sewing system40 in the EEOPR state, the conditions of a touching of the Clear Memorytouch pad 128 and the presence of a pattern in the memory having thespecified style and operation will cause the computer 72 to initiate aroutine to erase all sizes having that style and operation address. Thesewing system 40 is in the EROPR state shown in FIG. 21. On thecondition that no pattern is present in the memory having the specifiedstyle and operation address, the sewing system 40 reverts to the ECKSTYstate shown in FIG. 21. In the ECKSTY state the computer 72 checks thememory thereof for further styles. The sewing system 40 then reverts tothe EEHELD state, and will revert to the MENTRY state when an operatordiscontinues touching the Clear Memory touch pad 128.

Where a style and operation has been selected and a size is displayed inthe windows 87-90 of the control panel 85, a touching of the ClearMemory touch pad 128 will erase the particular size displayed for thestyle and operation specified, and the sewing sytem 40 will revert tothe ECKOPR state shown in FIG. 21. If further operations exist in thememory for the specified style, symbolically indicated by NOOPR, thesewing system 40 will revert to the EEHELD state. Where no furtheroperations exist for the specified style, the sewing system 40 willrevert to the ELKSTY state where the computer 72 will search for morestyles. The sewing system then reverts to the EEHELD state shown in FIG.21, and will revert to the MENTRY state when an operator ceases touchingthe Clear Memory touch pad 128.

REPAIR MODE OF OPERATION

In FIG. 22 there is shown a state chart for the sewing system 40 in theRepair Mode of operation. Entry to the Repair Mode of operation is fromthe Auto Sew or Control Sew Modes of operation, whenever the Repairtouch pad 183 is illuminated and made active by the computer 72. Ingeneral, the Repair touch pad 183 is illuminated and made active and theRepair Mode is accessible at the start and at the end of every segment.The possibility of entering the Repair Mode of operation provides anoperator with the flexibility required to perform a repair operationprior to automatic stitching, or to repair a seam inappropriatelystitched due to, for example, thread run out or breakage. Thus, where anoperator touches the Repair touch pad 183 at, for example, the end of asegment, the sewing system 40 enters the REPW state shown in FIG. 22.The control panel 85 appears as is shown in FIG. 23 with the windows88-90 of the control panel displaying the word SEW, the Repair touch pad183 illuminated and the Quit touch pad 142 illuminated and made activeby the computer 72 to permit reversion to the MENTRY state. From theREPW state, an operator may actuate the jog switch 68 for a stitch bystitch repair, actuate the needle-up positioning switch 70, and actuatethe presser foot elevating switch 77, by manipulation of the knee shiftdevice 80. By actuation of the foot treadle 65, the sewing system 40enters the REPMAN state and may be operated as a manual machine. Thecondition of no forward depression of the foot treadle 65, symbolicallyindicated by TRD, causes the computer 72 to initiate a routinedynamically braking the drive system of the sewing machine 50, and thesewing system enters the REPSP state. This condition continued (TRD),causes the computer 72 to initiate routines mechanically braking thedrive system of the sewing machine 50 with the needle 52 thereof in adown position through a work material. If the foot treadle 65 is placedin a heel condition, the computer 72 initiates routines to perform alast tack, mechanically brake the drive system of the sewing machine 50,trim the sewing threads and raise the presser foot 53 to an elevatedposition. The sewing system 40 reverts to the AWNTL state or to theCWNTL state in either the Auto Sew or Control Sew Modes of operation,respectively, from which it came. On further actuation of the foottreadle 65, the sewing system 40 will proceed with the next segment asthough the repair operation had not taken place.

The operation and features of the sewing machine system describedhereinabove are achieved by the use of the programmed computer 72, thecontrol panel 85 and the sewing machine 50 which are electricallyinterconnected in a manner as illustrated in FIG. 24. As illustrated,the computer 72 receives various electrical signals representative ofvarious sewing machine component operations from the sewing machine 50on terminals C1 - C11 and C16, the sewing machine receives variouselectrical signals for controlling various sewing machine componentoperations from the computer on terminals S1 - S14, the computerreceives various sewing control signals from the control panel 85 on theterminals C12 - C15 and the control panel receives various electricaldisplay and illuminates signals from the computer on terminals CP1 - CP5and input and output control signals on terminals CP6 and CP7,respectively.

A signal appears on terminal C1 of the computer 72 whenever the sewingmachine 50 exceeds a predetermined tilt angle or whenever thetemperature of the sewing machine drive motor of the drive systemexceeds a predetermined temperature. The signal on the terminal C1 isderived from a mercury switch (not shown) fixedly mounted within thesewing machine 50 for detecting the physical position thereof and, whenpresent, prevents the sewing machine from being actuated, such as whenrepairs are being made and the like. The signal on terminal C1 is alsoderived from a thermocouple (not shown) mounted on the drive motor ofthe drive system to provide a signal which, when present, disables thesewing machine 50 when the drive motor becomes overheated. A signalappears on the terminal C2 of the computer 72 whenever the sewing needleis in a down position. These signals are derived in a well known mannerby a pair of slotted discs (not shown) mounted on the drive shaft of thesewing machine 50 which cause a light path between a light source and alight detector to be uninterrupted when the sewing needle 62 is in theup and down position, respectively. The signal appearing on the terminalC4 of the computer 72 indicates the speed of the sewing machine drivemotor and comprises a series of pulses that are derived from a slotteddisc (not shown) mounted on the drive shaft of the sewing machine 50 andwhich interrupts a light beam (not shown) in a well known manner. In oneembodiment of the present invention which was constructed, these pulseswere utilized by the computer 72 when the sewing machine 50 was beingstopped to determine when the sewing speed had decreased to the pointwhere dynamic braking was disabled with subsequent activation ofmechanical braking. A signal appears on terminal C5 of the computer 72whenever any one, or more, of the three phases of input power to thesewing machine 50 is lost and, when present, results in the sewingmachine being disabled. The signal is obtained by comparing a referencelevel with the average level of rectified voltage obtained from thethree phase power source. As long as all three phases are present, therectified level average exceeds the reference level and no signalappears on terminal C5. However, if one or more phases are lost, theaverage rectified level falls below the reference level therebyproviding a signal at terminal C5 that results in the sewing machine 50being turned off. A signal appears on the terminal C6 of the computer 72whenever the needle-up positioning switch 70 is actuated and results inrotation of the drive shaft of the sewing machine 50 until the sewingneedle 52 is in its up position which, as described above, is indicatedby a signal at terminal C2. A signal appears on terminal C7 of thecomputer 72 whenever the presser foot elevating switch 77 is actuatedand results in the presser foot 53 being raised. A signal appearing onterminal C11 due to operator actuation of the jog switch 68 causes thesewing machine to sew one stitch. A three position switch (not shown) iscoupled to the sewing machine foot treadle 65 and provides a signal onterminal C8 of the computer 72 whenever the foot treadle is actuatedinto a forward sewing position, provides a signal on terminal C9whenever the foot treadle is in the neutral position and provides asignal on terminal C10 whenever the foot treadle is heeled. Also coupledto the foot treadle 65 is the potentiometer 402 having wiper arm 408.Operating potential across the potentiometer 402 can be supplied fromterminals C17 and C18 of the computer 72. As the foot treadle 65 isactuated during a sewing operation, the wiper arm 408 is moved bymovement of the foot treadle to provide a DC voltage level on terminalC16 that is proportional to the sewing speed. The computer 72 containsconversion means 404 therein to convert the analog signal appearing onterminal C16 into digital signals which are stored within the computerin a manner as described above, as pseudo segments.

Whenever a thread trim and wipe operation is to be performed, either asa result of an operator heeling the foot treadle 65 or as a result of astored program in the computer 72, three signals are simultaneouslyprovided on terminals S1, S2 and S3 of the sewing machine 50 by thecomputer. The signal on terminal S1 actuates the sewing machine 50thread trimmer, the signal in the terminal S2 actuates the sewingmachine thread tension release solenoid and the signal on terminal S3actuates the wiper thread mechanism, to perform a complete thread trimoperation.

The sewing machine 50 is stopped by first dynamically braking the drivesystem to a speed of about 400 RPM followed by mechanical braking. Thecomputer 72 provides a signal on terminal S6 of the sewing machine 50 toinitiate dynamic braking of the drive system. Once the speed of thedrive system is reduced sufficiently (as described above, the computerutilizes the pulses appearing on terminal C4 to determine drive motorspeed), a signal appears on terminal S5 to disable dynamic braking afterwhich a signal appears on the terminal S4 to actuate mechanical brakingof the drive motor to completely stop the drive system.

A signal on terminal S7 of the sewing machine 50 from the computer 72provides a drive motor control signal to result in a fixed sewing speedof about 400 stitches per minute, i.e., the position sewing speed. Aslong as this inhibit signal is present on terminal S7, operation of thefoot treadle 65 has no effect on sewing speed. A signal on terminal S9causes the direction of motion of the material being sewn to move towardthe operator (reverse feed), whereas a signal on terminal S10 causes thedirection of motion of the material being sewn to move away from theoperator (forward feed). A signal appearing on terminal S11 causes thesewing machine 50 presser foot 53 to be raised. A signal appearing onterminal S12 provides a drive motor control signal that causes thesewing machine 50 to sew at a fixed rate of about 1000 stitches perminute. A signal appearing on terminal S13 provides a drive motorcontrol signal that limits the sewing speed to the rate set as themaximum sewing speed of the sewing machine 50 in the Set Up Mode ofoperation described above.

Whenever a signal appears on the terminal S8, the sewing speed can becontrolled by operator actuation of the foot treadle 65 in the ManualMode of operation. This results in an analog signal having a level thatis proportional to the desired speed appearing on terminal S14, afterbeing derived from the potentiometer 402. In an Automatic Sew Mode ofoperation, the analog signal level appearing on terminal S14 can bederived from the pseudo segment digital speed values, describedhereinabove, which are stored in the computer 72. Conversion means 406convert these stored digital signals into an analog voltage. Asdescribed hereinabove, the stored digital signals may corresponddirectly to the speed profile of the operator or the speed of the pseudosegments may be increased or decreased by way of the control panel 85.

The control panel 85 includes, as described above, a plurality of touchpads that are manually actuated. Actuation of any of these touch padsresults in a four bit binary signal, that identifies the actuated touchpad, being coupled from the control panel 85 to terminals C12, C13, C14,and C15, respectively, on the computer 72. The transfer of such datafrom the control panel 85 to the computer 72 can only take place if anenable out signal from the computer appears on control panel terminalCP7. Circuit means for deriving a multi bit binary coded signal thatidentifies an actuated one of a plurality of touch pads is fullydisclosed in copending application Ser. No. 732,228 entitled CHARGE RATECAPACITIVE SWITCH SYSTEM, filed October 14, 1976 and assigned to theassignee of the present invention. The disclosure of this patentapplication is incorporated herein by reference.

As described hereinabove, the control panel 85 includes display means aswell as means for selectively back illuminating portions of the controlpanel. Signals for actuating various segments of the display and theilluminating means are provided by the computer 72 to terminals CP1,CP2, CP3, CP4 and CP5 of the control panel. These signals have no effecton the display means or the illuminating means unless an enable signalis present on terminal CP6 from the computer 72. Control and actuationcircuit means for a segmented display, alphabetic or numeric, and backilluminating means are well known in the art and need not be describedherein for a complete and detailed description of the present invention.

As will be apparent to those skilled in the art, the signals discussedabove may include a positive or negative voltage level as well as theabsence of a voltage i.e., ground potential. Additionally, a commonground connection (not shown) couples the sewing machine 50, thecomputer 72 and the control panel 85. As is now apparent to thoseskilled in the art, the signals generated by the computer 72 andappearing on terminals S1-S14 are generated in response to manualoperation of the sewing machine 50 or in response to a sewing patternstored in the computer 72.

The computer 72 utilized in one embodiment of the present invention thatwas constructed, comprised a microcomputer developed by The SingerCompany. This microcomputer is fully described in a manual entitled "AB0Microcomputer" copyrighted 1974 by The Singer Company of ThirtyRockefeller Plaza, New York, New York, the contents of which are herebyincorporated by reference. Set forth below, however, in conjunction withFIGS. 26 to 28, is a brief description of the ABO microcomputer. Thoseinterested in a more detailed description of the ABO computer aredirected to the manual described above.

The ABO Microcomputer was designed for implementation on a single MOSLS1 circuit. Its instructions and architecture were chosen to maximizeits efficiency in data manipulation, communication and real-timecontrol. Its arithmetic capabilities are therefore adequate but notpowerful, although its instruction perform sixteen bit arithmetic andprovide for efficient address computations.

In addition, there were three specific design objectives for theinstruction set: (1) shortest possible instructions to minimize cost ofmemory for program storage; (2) efficient interrupt processing; and (3)powerful memory and i/o device addressing. As a result, the memoryrequired for program storage is less than that required by many othermicrocomputers. The interrupt and i/o capabilities of the ABOMicrocomputer even exceed those of some minicomputers, and none of thecommon addressing problems caused by memory "page boundaries" arepresent. A few important terms which appear throughout are explainedhere:

    ______________________________________                                        Byte      Eight binary bits of data (this                                               is the unit of memory data addressed                                          by the ABO Microcomputer).                                          Memory Page                                                                             Two hundred fifty six bytes of memory                                         beginning at an address whose least-                                          significant eight bits are 0.                                       Word Boundary                                                                           Any memory address whose least-signifi-                                       cant bit is 0.                                                      Word      Two contiguous data bytes; the first                                          byte is the most-significant and must                                         reside at a word boundary in memory.                                Opcode    The first eight bits of each ABO Micro-                                       computer instruction; these identify                                          the operation performed by the instruction.                         ______________________________________                                    

The prime sign (') is used to represent logical inversion; thus if X isthe name of a signal, X=0 implies X'=1. ABO Microcomputer instructionsprovide the user with access to eight, eight bit data registers as shownin FIG. 25. These are named A, B, XHI, XLO, YHI, YLO, ZHI and ZLO.Certain instructions (LD, SD, INCD, etc.) operate on these registers asfour sixteen bit double registers; when used in this way, the doubleregisters are named AB, X, Y and Z. The first byte of each doubleregister is the most-significant byte; thus XHI is the most-significantbyte of the X double register, and XLO is the least-significant byte.FIG. 25 also shows five additional registers, called program registers,which are used by the ABO Microcomputer to maintain various pointers andto save data and addresses. These are named PC 16 bits), STKPTR (sixteenbits), CALLS-PG (eight bits), SAVE-PSW (eight bits), and CALLS-RET(sixteen bits). All the data registers and program registers reside inexternal writable memory; they are not part of the ABO Microcomputer. Byknowing the actual location of a register in memory, the programmer mayreference it in the same way that he references any other memorylocation. This is explained later in more detail in Register AccessMethods.

Register Functions

    ______________________________________                                        AB     The A or B register may supply one argument                                   for arithmetic operations. The Rotate (ROT)                                   and Exchange PSW (XPSW) instructions operate                                  only on these two registers, and one argument                                 of the And (AN) and Add (A) instructions must                                 come from one of these two registers. Unlike                                  X, Y and Z, the AB double register may not con-                               tain the memory address used in Load, Store,                                  Call and Jump instructions. In other respects,                                however, the A and B registers may be used just                               like the other six data registers.                                     X,Y,Z  These registers may be used for temporary data                                storage or for arithmetic operations; they may                                function as six, eight-bit registers or as three,                             sixteen-bit double registers. Each of the double                              registers may contain the memory address used in                              Load, Store, Call and Jump instructions; in this                              mode, they function as address registers.                              PC     Program Counter: the user must load this sixteen-                             bit register with the address of the first instruc-                           tion of the interrupt routine before interrupt                                servicing begins. If a higher priority interrupt                              occurs during interrupt servicing, the PC register                            is then used to save the address of the instruction                           to be executed when the higher priority servicing                             is completed. The Return From Interrupt (RTI)                                 instruction establishes a new value for the                                   least-significant PC register byte at the con-                                clusion of interrupt servicing; this determines                               where execution begins the next time interrupt                                servicing is requested. The BLOCKIN and BLOCKOUT                              instructions also use the PC register for temp-                               orary storage of the address of the following                                 instruction.                                                           STKPTR Stack Pointer: this sixteen-bit register always                               contains the memory address of the most-recently                              used (the "top") location of the last-in-first-out                            (LIFO) stack. Each stack entry contains two                                   bytes, and the STKPTR register always addresses                               the most-significant (or first) byte; hence, the                              least-significant bit of the STKPTR register is                               always `0`. The contents of the STKPTR register                               are utilized in the Call, Return and STack in-                                structions (CALL, RET, STK, UNSTK, and XSD).                                  Prior to the first execution of any of these in-                              structions, the user must initialize the STKPTR                               register with the appropriate beginning stack                                 address. While all sixteen bits of the STKPTR                                 register are used to address the stack, only the                              least-significant byte changes when the stack is                              used; the most-significant byte always retains                                the original value stored there by the user.                           CALLS- CALLS Instruction Page Pointer: prior to execu-                        PG     tion of the Call Short (CALLS) instruction, the                               user is responsible for filling this eight-bit                                register with the most significant byte of the                                address of the subroutine table used by the CALLS                             instruction. The CALLS-PG register always con-                                tains the last data stored there by the user; it                              is not modified by the ABO Microcomputer.                              SAVE-  PSW Save Area: this eight-bit storage area is                          PSW    not intended for use by the programmer; it is                                 used to save the contents of the ABO Microcom-                                puter PSW register each time a new instruction                                is fetched. This is because the XSD, CALL,                                    CALLI, BLOCKIN and BLOCKOUT value from the SAVE-                              PSW area. The SAVE-PSW area will not necessarily                              contain the correct PSW value after an instruction                            has executed.                                                          CALLS- Calls Instruction Return Address: this sixteen-                        RET    bit save area is used exclusively by the Call                                 Short (CALLS) and Return Short (RETS) instructions.                           After a CALLS instruction is executed, the address                            of the next instruction in sequence is saved in                               the CALLS-RET area. The RETS instruction subse-                               quently causes this address to be used as the - address of the                next instruction to be executed.                                       ______________________________________                                    

Stack Usage CALLX, CALLY,

The Stack instructions (STK, UNSTK and XSD) provide the programmer withaccess to a last-in-first-out (LIFO) stack which may be located anywherein writable memory. In addition, the Call instructions (CALL, CALLY,CALLZ and CALLI but not CALLS) use the same stack to save the address ofthe instruction which follows the Call instruction in sequence; thisaddress is subsequently unstacked by the Return (RET) instruction.

FIG. 26 shows the structure of the stack, and illustrates how the STKPTRprogram register always contains the address of the most-recently used(the "top") location of the stack. The stack may contain up to onehundred twenty eight, two byte entries; the entries must be aligned onword boundaries, and the stack must reside entirely within one memorypage (see STKPTR in Register Functions). If the programmer wishes to usemore than one stack, he may simply save the current contents of theSTKPTR register (if necessary) and load the STKPTR register with theaddress of another stack. The programmer is responsible for initializingthe contents of the STKPTR register before executing any Call, Return orStack instructions. The initial value required in the STKPTR register isgiven by the following formulas:

    ______________________________________                                        If the stack begins on a                                                                        If the stack does not                                       memory page boundary                                                                            being on a memory page                                      (as in Figure 26):                                                                              boundary:                                                    A + 254           A - 2                                                      ______________________________________                                    

where A is the address of the first stack entry (the beginning of thestack). The unusual +254 factor is required because only theleast-significant byte of the STKPTR register is incremented by twobefore addressing the first stack entry; the most-significant byte isnever changed. Thus the STKPTR register will contain just the value of Aafter the first incrementing by two in either case. Because only theleast-significant byte of the STKPTR register is ever changed, a stackwhich begins on a memory page boundary (see FIG. 26) and fills up (all129, two-byte locations) will "wrap around" to the beginning of the samememory page if you attempt to stare into the next location of the stack.Thus the 129th location in the stack would be identical to the 1stlocation, the 130th to the 2nd, and so on.

Register Access Method

The data registers and program registers are contained in externalwritable memory. The ABO Microcomputer addresses the data register areaby placing the register number (0-7 as shown in FIG. 25) on the threeleast-significant memory address output signals (MA0, MA1, MA2) andactivating the output signal RFLAG. The program registers are addressedsimilarly; the register number (0-7) is placed on the same memoryaddress output signals, but the output signal SFLAG is activatedinstead. In either case, the remaining thirteen memory address outputsignals are set to `0` when registers are being addressed. The RM outputsignal is activated to indicate a read-memory operation; the WM outputsignal is activated to indicate a read-memory operation; the WM outputsignal is activated to indicate a write-memory operation. By monitoringRM, WM, RFLAG and SFLAG, external circuitry may easily determine whenthe ABO Microcomputer is requesting access to the register area inmemory. A bias address may then be logically ORed onto the moresignificant memory address signals to establish the actual location ofthe register area anywhere in the 65,536 bytes of addressable memory.For most applications, the SFLAG signal will be logically ORed with thenext higher memory address signal (MA3); this will locate the programregisters in the eight memory locations immediately following the dataregisters. FIG. 27 shows a simple circuit which accmplishes this; RFLAGand SFLAG are also ORed with MA9 which causes the registers to reside inthe first sixteen addresses of the third memory page (hex addresses200-20F).

When the ABO Microcomputer is initialized with the CLR input signal, thefirst instruction which is executed is fetched from memory address 0.Thus it would be inconvenient to locate the registers in this area ofmemory unless there was a practical way to initialize the first 24 bitsof register area so they contained a Jump instruction (for example) tothe desired starting address of the program. The registers could beconveniently located, however, at the first sixteen addresses of anyother memory page.

It is essential that the programmer know the actual memory addresses ofthe program registers because he must initialize certain of these(STKPTR and CALLS-PG) before using the stack or executing the CALLSinstruction. This is typically accomplished by storing theinitialization date at the actual memory location which contains theregister.

When the ABO Microcomputer is used in an interrupt processing mode, aunique set of sixteen registers will be associated with each interruptlevel. The memory locations of the registers being used at any giventime will be determined by external interrupt circuitry.

The ABO Microcomputer contains an eight-bit register called the ProgramStatus Word (PSW). The two least-significant bits are called STATUSbits; the least-significant is named NEG and the other is named ZERO.These bits are automatically set at the conclusion of each arithmeticinstruction to indicate the value of the arithmetic result. The possiblevalues for these bits and their respective meanings are set forthhereinbelow. When a double-byte arithmetic instruction is executed (INCDor AD), these bits indicate the value of the most-significant byte ofthe result only.

    ______________________________________                                        Meaning of STATUS Bits                                                        ______________________________________                                        00   Positive arithmetic result (most-significant                                  result bit is `0`, and at least one of the next                               most-significant seven bits is `1`)                                      01   Negative arithmetic result (most-significant                                  result bit is `1`)                                                       10   Most-significant eight bits of the result are `0`                        11   Not used                                                                 ______________________________________                                    

The next PSW bit is named CARRY. The Rotate and Add instructions (ROT,A, AD) cause this PSW bit to be set to `1` or `0`. The most-significantfive bits of the PSW are not used by the ABO Microcomputer. Theprogrammer may find it convenient to use these bits to store temporarydata or flags. The Exchange PSW (XPSW) instruction causes the entire PSWto be swapped with the contents of the A or B register.

The PSW CARRY and STATUS bits are used to save information aboutarithmetic results so that subsequent Jump, Skip or Call instructionsmay be conditionally executed or bypassed. For example:

J SUBR1, EQZERO

is an instruction which causes a jump to the address of SUBR1 providedthe last arithmetic result was zero (the PSW ZERO bit is `1`); otherwisethe jump does not occur.

The XPSW instruction may be executed at any time to exchange the currentcontents of the PSW register with the contents of the A or B dataregister. This is the only way the programmer may access themost-significant five bits of the PSW. When a series of operations mustbe performed n times in a loop, the Increment instruction (INC) istypically used to step the value in some data register from -n to 0. Itis convenient in this case to test the PSW NEG bit to determine when thevalue is no longer negative in order to exit from the loop. One use forthe PSW CARRY bit occurs in extended-precision addition or substraction.If two, thirty two-bit numbers are to be added, for example, an AddDouble instruction (AD) may be used to add the least-significant sixteenbits of each number and set the PSW CARRY bit if a carry is generatedfrom the most-significant bit position. The PSW CARRY but must then betested to determine whether an additional +1 must be included in the sumof the most-significant 16 bits. When an interrupt occurs, the contentsof the PSW register are not automatically saved. If the interruptroutine will execute instructions which change the value of the PSWbits, the old PSW must be saved first by using the XPSW instruction.

The ABO Microcomputer responds to interrupt requests with the followingsequence of actions:

the instruction in progress at the time is completed;

the address of the next instruction in sequence is stored in the PCprogram register (see FIG. 25);

an output signal (FETCH) is activated to cause external circuitry tobegin addressing a different set of registers in memory;

the address of the first instruction to be executed in the interruptroutine is loaded into the ABO Microcomputer from the PC register in thenew register area. At the conclusion of interrupt procession, a similarset of actions takes place in the reverse order:

an RTI instruction concludes the interrupt routine by establishing anaddress in the PC program register to identify where instructionexecution is to begin when the next interrupt occurs;

an output signal (RTI) is activated to cause external circuitry to stopaddressing the registers associated with the interrupt routine and toreturn to the registers associated with the next lower priority level.

the contents of the PC program register in the original register area isthen loaded back into the ABO Microcomputer so that instructionexecution may begin from the point where it was interrupted. For mostefficient interrupt procession, the interrupt routine should have itsown set of data and program registers (as in FIG. 25). This allows theinterrupt routine to immediately begin procession the interrupt usingappropriate addresses and data that had been previously loaded into itsvarious registers; the registers associated with the instruction whichwas interrupted are automatically saved because they are locatedelsewhere in memory. It is possible for the interrupt routine to sharethe eight data registers with the interrupted routine; the interruptroutine must have its own program registers, however, since the PCregister cannot be shared.

The programmer is responsible for initializing the PC register which theinterrupt routine will use before the first interrupt occurs; every timethereafter, the RTI instruction in the interrupt routine re-initializesits PC register. If the interrupt routine will execute any Call or Stackinstructions, the programmer must also initialize the interrupt STKPTRregister, the interrupt routine may or may not share the same stack withthe interrupted routine according to the discretion of the programmer.If the interrupt routine will execute the Call Short (CALLS)instruction, the programmer must initialize the CALLS-PG register.

The PSW register within the ABO Microcomputer contains arithmetic statusinformation about the interrupted routine which is not automaticallysaved when an interrupt occurs. It is possible to create simpleinterrupt routines which do not execute arithmetic instructions andtherefore do not destroy the PSW register contents; in the case theinterrupt routine need not save the PSW register. Otherwise Exchange PSW(XPSW) instructions must be executed at the beginning and end of theinterrupt routine to swap the PSW register with the A or B registerbelonging to the interrupt routine.

Transfer of i/o data between the ABO Microcomputer and i/o device takesplace in exactly the same way that data is transferred between the ABOMicrocomputer and memory. Specific decodings of the sixteen memoryaddress output signals (MA0-15) must be reserved to signify that theprogrammer is addressing an i/o device rather than memory. I/O data andmemory data share the same eight bidirectional data signals (MD0-7)passing into and out of the ABO Microcomputer.

If less than 32,769 bytes of memory will be used, the most-significantmemory address bit (MA 15) may be used to indicate to external circuitrywhether memory or an i/o device is being addressed. A `0` on MA 15 couldindicate that memory was being addressed; a `1` on MA 15 would indicatethat an i/o device was being addressed. The remaining fifteen memoryaddress signals could then be used by the programmer to identify thespecific i/o device in question in any convenient way.

The programmer may cause eight bits of input data to be read into a dataregister and stored at a specific memory location with the followinginstructions:

    ______________________________________                                        L     A, dev-add    (Load the A register)                                     S     A, mem-add    (Store the A register)                                    where                                                                         dev-addr is a sixteen-bit (direct) address which                                       follows the Load opcode and identifies                                        the specific input device in question (the                                    most-significant bit of this address would                                    be `1` if the addressing scheme suggested                                     earlier was used);                                                   mem-addr is the sixteen-bit (direct) address of the                                    memory location where the input data is to                                    be placed.                                                           ______________________________________                                    

A similar pair of Load and Store instructions may be used to transferdata from a memory location to an output device. If Load Double andStore Double (LD and SD) instructions are used, sixteen bits of datawill be transferred instead of eight bits.

FIG. 28 shows some of the input and output signals which pertain tointerrupt processing. Each of these signals is active when it is highexcept RQPC'; RQPC' is normally high and must be made low to indicate arequest for interrupt. If interrupts are not used, RQPC' must be fixedhigh constantly. I/O data transfer actually occurs when externalcircuitry recognizes a specific device address on the memory addresssignals (MA0-15). If the RM signal is high at this time, data must begated onto the data input/output signals (MD0-7) to be read by the ABOMicrocomputer. If the ABO Microcomputer wishes to write data to adevice, the WM signal will be high and the data will be present sent onthe same data input/output signals (MD0-7). RM and WM will never both behigh. FETCH and RTI are output signals which indicate when the interruptroutine is beginning and ending. The trailing edge of FETCH iscoincident with the beginning of the microcycle at which externalcircuitry must start addressing the registers associated with theinterrupt routine. The trailing edge of RTI coincides with the beginningof the microcycle at which the registers of the interrupted routine mustbe addressed again. FIG. 29 illustrates the time relationship betweenRQPC', FETCH and RTI. PHAZ3 in this diagram is an ABO Microcomputerclock input which is active at the end of every microcycle.

The execution of an instruction normally begins with themicroinstruction named FETCH at hex address 7F in the ABO MicrocomputerROM.

If the interrupt request input signal (RQPC') is active (low) at thistime, the microinstructions at ROM addresses 7E and 40 (IRPT* and IRPT1)occur instead. These two microinstructions cause the contents of the ABOMicrocomputer CPC register (the address of the next instruction) to besaved in the PC program register; the microinstruction at ROM address 40also activates the FETCH output signal to indicate that interruptprocessing will begin on the next microcycle (see FIG. 29).

The interrupt routine then begins with the two microinstructions at ROMaddressed 19 and 1F (IRPT2 and IRPT3). These cause the ABO MicrocomputerCPC register to be loaded from the PC program register associated withthe interrupt routine; this will be the address of the first instructionto be executed. The first instruction in the interrupt routine is thenexecuted; this begins with the FETCH microinstruction at ROM address 7Fas usual.

A BYTEIN instruction is designed to be used in a highspeed interruptroutine to read a single byte of data from a specific input device andstore it in an input data area in memory. Each interrupt causes anotherbyte to be read and stored at a successively higher memory address.Included in the instruction is a test to determine whether a specifiednumber of bytes have been read and stored yet. A BYTEOUT instructionperforms the same function for an output device. Niether instructionchanges the value of the PSW register.

The interrupt routine which utilizes BYTEIN or BYTEOUT requires only twoinstruction executions:

Bytein or BYTEOUT

Rti

other instructions to be executed when the last byte of data has beentransferred.

The interrupt routine begins directly with BYTEIN, for example, andterminates with the RTI instruction which immediately follows it. Whenthe specified number of bytes have been read and stored in memory, theBYTEIN instruction causes the RTI instruction to be skipped and otherinstructions may then process the block of data which was read from theinput device.

Set forth below are the source statements of the actual sequence ofmicroinstructions which occurs in an interrupt routine containing BYTEINand RTI. The first four microinstructions (ROM addresses 7E, 40, 19, 1F)are the overhead associated with saving the address of the interruptedinstruction and reading the contents of the PC progtam register for theinterrupt routine. It can be seen that the BYETIN and RTI instructionsrequire twenty additional microcycles; thus the total interruptservicing time for an eight-bit data transfer is 24 microcycles (36usec. if the cycle time is one and half usec.)

    __________________________________________________________________________          7E-IRPT*                                                                             CPCLO→, PCLO, IRPT1                                                                  Enter IF (RQPC.RAR=                                                           7F=FETCH)                                                40-IRPT1                                                                             CPCHI→, PHCHI, IRPT2                                                                 FETCH SIGNAL                                             19-IRPT2                                                                             PCLO,→ CPCLO, IRPT3                                             IF-IRPT3                                                                             PCHI,→ CPCHI, FETCH                                       09BYTEIN                                                                            7F-FETCH                                                                             M(CPC),→ I, FETCH1                                                                   LOADS MARLO SIMULTA-                                                          NEOUSLY (CALL SHORT)                                     78-FETCH1                                                                            PSW→, SPSW, IC,                                                                      BRANCH TO MICRO                                                 ADDRESS=X'00  ROUTINE                                                  16-IN* XHI,→ MARHI IN1                                                                      DEVICE ADDR                                              43-IN1 XLO,→ MARLO, IN2                                                49-IN2 M,→ OP, IN3                                                                          IPUT DATA                                                4B-IN3 A,→ MARHI, IN4                                                                       READY FOR STORE                                          4D-IN4 B,→ MARLO, COUNT                                                21-COUNT                                                                             OP→, M, COUNT1                                                                       OUTPUT/STORE AFTER                                                            INPUT                                                    7C-COUNT1                                                                            ZHI,→ ALU (+1),                                                                      SKIP2                                                           JIFNC, NOCA                                                            7C-COUNT1                                                                            ZHI,→ ALU (+1),                                                                      SKIP2                                                           JIFNC, NOCA                                                            35-NOCA                                                                              OP→, ZHI, INCD*                                                 08-INCD*                                                                             GR1+1,→ ALU(+1),                                                                     INCD1                                                           JIFNC, NOC                                                             08-INCD*                                                                             GR1+1,→ ALU(+1),                                                                     INCD1                                                           JIFNC, NOC                                                             2B-NOC OP→, GR1+L, JTRCKY,                                                                  (INCD=NOC1, IN/OUT=                                             ADDRESS=X'79  FETCH)                                             46 RTI                                                                              7F-FETCH                                                                             M(CPC),→ I, FETCH1                                                                   LOADS MARLO SIMULTA-                                                          NEOUSLY (CALL SHORT)                                     78-FETCH1                                                                            PSW→, SPSW, IC,                                                                      BRANCH TO MICRO                                                 ADDRESS=X'00  ROUTINE                                                  3C-RTI*                                                                              M(CPC),→ OP, IC, RTI1                                           41-RTI1                                                                              OP→, PCLO, IRPT2                                                                     RESET INTERRUPT SIGNAL                                   19-IRPT2                                                                             PCLO,→ CPCLO, IRPT3                                             1F-IRPT3                                                                             PCHI,→ CPCHI, FETCH                                       __________________________________________________________________________

The total time required to respond to and service an interrupt must alsoinclude the latency associated with waiting for the current instructionto be completed before the interrupt routine may begin. The averageinstruction execution time is approximately seven microcycles. Thus thetotal interrupt response and service time (average) is approximately 41usec. for a cycle time of one and half usec. when the high-speedBYTEIN/BYTEOUT interrupt routine is used.

Many instructions are called "double" (Load Double-LD, Store Double-SD,etc.) because they operate on two contiguous bytes of data in memory.These two-byte data must each be aligned on a word boundary; in otherwords, the most-significant byte of data must reside at an even-numberedaddress. This same work alignment rule applies to any two bytes inmemory, other than those contained in an instruction, which are used bythe ABO Microcomputer as an address.

A similar alignment rule applies to registers in memory: the first dataregister (the A register) and the first program register byte (the PCregister) must each reside at an address whose three least-significantbits are `000`.

As explained previously, every stack must be contained entirely withinone page of memory. Each byte stack entry must be aligned to a wordboundary. Every stack may contain up to 128, two-byte entries, however,regardless of which word in the memory page contains the first stackentry (the beginning of the stack).

Both bytes of the two-byte address in the Jump (J) instruction mustreside in the same page of memory (in other words, the address portionof the Jump insttruction must not straddle a page boundary). Thisrestriction does not apply to any other instruction.

Negative number are represented in 2's complement form in the ABOMicrocomputer (0 is "00000000", -1 is `11111111`, -2 is `11111110`,etc). This permits any decimal number from -128 to +127 to be stored inone byte of memory or in a single data register. Two memory bytes or adouble data register may store numbers from -32768 to +32767. The PSWNEG bit (see FIG. 25) is set to `1` to indicate a negative valuewhenever an arithmetic instruction produces a result whosemost-significant bit is `1` (only the most-significant byte of 2-byteresults is checked). The Add an Increment instructions follow the usualrules of 2's complement arithmetic.

In certain instances the programmer may elect to use no negative number.One memory byte may then represent any number from 0 to +255, and twobytes (sixteen bits) may represent any number from 0 to +65535. Memoryaddresses are always treated as sixteen-bit positive numbers.

Set forth hereinbelow are simple sequences of ABO Microcomputerinstructions which perform various arithmetic and logic operations.These operations cannot be performed by single ABO Microcomputerinstructions because all possible 256 instruction codes are alreadyutilized for other functions.

SUBTRACT

B is subtracted from XHI; the result remains in XHI:

    ______________________________________                                        COM        B         (Complement)                                             INC        B         (Increment)                                              A          B, XHI    (Add)                                                    ______________________________________                                    

If the PSW CARRY bit is `0`, the result is negative; otherwise theresult is positive. No check is made for overflow or underflow. Thismethod of subtraction is only valid for signed numbers in 2's complementform (maximim positive value of +127).

LOGICAL OR

The logical OR of B with XHI replaces XHI:

    ______________________________________                                        COM        B         (Complement)                                             AN         B, XHI    (And)                                                    COM        B         (Complement)                                             A          B, XHI    (Add)                                                    ______________________________________                                    

SHIFT LEFT

B is shifted left 1 bit; a `0` is shifted into the least-significant bitposition.

    ______________________________________                                        A          B, B      (Add)                                                    ______________________________________                                    

The most-significant bit of B replaces the PSW CARRY bit.

In certain cases the number of cycles is followed by a second numberenclosed in parentheses. For arithmetic instructions, the parentheticalvalue specified the number of cycles required for the case when carriesare generated from the most-significant bit positions of both bytes inan Add Double (AD) or Increment Double (INCD) instruction. For BYTEINand BYTEOUT instructions, the parenthetical value applies to the casewhen the last byte of data is transferred. For Jump, Skip and Callinstructions, the parenthetical value applies if the specified conditionis not true and the action specified by the instruction does not takeplace.

In the ABO Microcomputer instructions, certain lower case letters areused to indicate data which must be supplied by the programmer. Theseare explained below:

    ______________________________________                                        rrr     Three bits specifying one of the eight-bit                                    data registers; the following mnemonics are used:                     000        A       100    YHI                                                 001        B       101    YLO                                                 010        XHI     110    ZHI                                                 011        XLO     111    ZLO                                                 dr      Two bits specifying one of the sixteen-bit                                    pairs of data registers:                                              00         AB      10     Y                                                   01         X       11     Z                                                   a       One bit specifying either the A or B data                                     register:                                                             0          A                                                                  1          B                                                                  addr    Sixteen bits specifying the memory address to                                 be used by the instruction.                                           short-addr                                                                            Eight bits specifying only the least-significant                              byte of the address to be used by the RTI or                                  JS instruction.                                                       data    Sixteen bits of data to be used by the LDI                                    instruction.                                                          short-data                                                                            Eight bits of data to be used by the LI                                       instruction.                                                          cc      Two bits specifying the condition which must                                  be satisfied if the instruction is to be                                      carried out. The following mnemonics are used:                        00        UNCOND    (the instruction will be                                                      carried out unconditionally)                              01        LTZERO    (The PSW NEG bit must be `1`                                                  or the instruction will be                                                    bypassed)                                                 10        EQZERO    (the PSW ZERO bit must be `1`                                                 or the instruction will be                                                    bypassed)                                                 11        CARRY     (the PSW CARRY bit must be `1`                                                or the instruction will be                                                    bypassed)                                                         The Skip instructions (SS, ST) may not be ex-                                 ecuted unconditionally (cc must not be `00`)                          PPP     Three bits specifying a binary value between                                  000 and 110 (0-6) to be used as a table address                               by the Call Short (CALLS) instruction. The                                    decimal value is written instead of a mnemonic;                               for example:                                                          ______________________________________                                    

CALLS 4

Attached hereto as an appendix is the detailed program listing which wasused in the ABO Microcomputer to achieve the novel sewing machine systemdescribed herein. The program begins with various definitions andaddresses and is followed by a listing of the program statements. Aslisted, the left most column contains the labels of program statements,the next column contains the operations followed in the next column bythe operands which are followed by easily read comments concerning theassociated program statement. The right most column contains the numbersassigned to the associated program statements. The columns of theprogram listing are interrupted by asterisked comments on the programstatements and other information that follows below the comments. For adetailed explanation of the items in the program listing appendedhereto, reference is made to the ABO Microcomputer manual describedabove. In addition to the information contained in the ABO manual thefollowing definitions are helpful for a detailed understanding of theappended program:

    ______________________________________                                        ASSEMBLER DIRECTIVES                                                          ______________________________________                                        EQU      Equate the Value of the Argument expression to                                the symbol in Column 1.                                              Org/Origin                                                                             Adjust the Memory Location to the value of the                                expression                                                           RESERVE                                                                       N        Reserve N Unused bytes of memory.                                    BOUND 2  Adjust the memory location to the next highest                                address which is a word boundary.                                    DATA, N  Assemble the arguments in groups of N Bytes each.                    $        The value of the present memory location (when                                used by itself as a symbol)                                          (HOL(...)                                                                              Defines ... as ASCII characters to be assembled                               as data.                                                             H(..)/                                                                        HEX(..)  Defines a Hexadecimal constant.                                      EJECT/                                                                        PAGE     Skip to a new page on the printout.                                  SPACE N  Leave N Blank lines on the printout.                                          ABO MICROCOMPUTER INSTRUCTIONS                                       COMP     Same as Com (Complement)                                             JUMP     Assembled as JS (Jump Short) if possible:                                     otherwise as J (Jump).                                               RTN N    Store the present Memory location value at                                    RTN$TABLE + 2 * N.                                                   CALLRTN                                                                       N        CALLI (Call Indirect) to RTN$Table + 2 * N.                          CALLS                                                                         NOT      Invert states of all PSW (Program Status Word)                                Bits.                                                                CALLS R2 Return from subroutine 2 Bytes beyond current                                 stack value.                                                         CALLS R1 Return from subroutine address specified by the                               2 bytes located at the address contained in the                               stack.                                                               ______________________________________                                    

As will now be apparent, the appended program listing, the state chartsdescribed above and the ABO manual identified above not only constitutea complete description of the computer 72 but also constitute a completeand detailed description of the function and cooperation between thecomputer, the control panel 85 and the sewing machine 50 to achieve theresults of the present invention.

Having thus set forth the nature of the invention what is sought to beclaimed is:
 1. A programmable sewing machine adapted to perform asequence of operations on a work material, said programmable sewingmachine comprising:a sewing machine frame; a sewing needle supported bysaid frame for selectively repeated movement from a down positionthrough a work material to an up position and return to a down position;means for counting said selectively repeated movement of said sewingneedle; a looptaker supported by said frame for cooperation with saidsewing needle in the formation of stitches; a reversible work materialfeed system supported by said frame and including feeding means forpassing work material in a path between said needle and said looptaker;drive means for actuating said sewing needle, said looptaker and saidwork material feed system in synchronism with each other; manualregulating means for selectively actuating said drive means; a presserdevice selectively movable from a position urging said work materialagainst said feeding means to a position out of contact with said workmaterial; manual control means for selectively moving said presserdevice out of contact with said work material; means for measuring timeduration of actuation of said manual control means; a computer havingmeans for self directed recording once initiated of a sequence ofoperations of the manual actuation of said regulating means includingthe count from said counting means of the selectively repeated movementof said sewing needle, and of the manual actuation of said control meansfor selectively moving said presser device including the time durationof actuation thereof from said time duration measuring means; and, meansfor enabling said sewing machine to be operated in accordance withinstructions from said recording means of said computer.
 2. Aprogrammable sewing machine as claimed in claim 1, wherein said drivemeans includes means for dynamically braking to a low speed and meansfor mechanically braking to a stopped condition with said sewing needlein one of said up position and down position thereof; and wherein saidregulating means includes an actuated position, and non-actuated andheel positions for implementing dynamic braking and mechanical brakingof said drive means.
 3. A programmable sewing machine as claimed inclaim 2, wherein said computer is responsive to said non-actuatedposition of said regulating means to activate said dynamic brake meansand said mechanical brake means to stop said drive means with saidsewing needle in said down position thereof; and said computer isresponsive to said heel position of said regulating means to actuatesaid dynamic brake means and said mechanical brake means to stop saiddrive means with said sewing needle in said up position thereof.
 4. Aprogrammable sewing machine as claimed in claim 3, wherein said computeris responsive to a count from said counting means of at least onemovement of said sewing needle and to said actuated position of saidregulating means following a non-actuated position thereof; to record insaid recording means the count from said counting means and to reset thecounting means to zero.
 5. A programmable sewing machine as claimed inclaim 4, wherein said computer is responsive to a count from saidcounting means of at least one movement of said sewing needle, to saidnon-actuated position of said regulating means and to manual actuationof said manual control means for moving said presser foot out of contactwith said work material to initiate operation of said means formeasuring time duration of actuation of said manual control means; isresponsive to a subsequent non-actuation of said manual control means tomove said presser foot into contact with said work material and tocompute the elapsed time duration of actuation of said manual controlmeans; and is responsive to a subsequent disposition of said regulatingmeans in an actuated position to record the count from said countingmeans and the elapsed time duration of actuation of said manual controlmeans, and to reset said counting means and said means for measuringtime duration to zero.
 6. A programmable sewing machine as claimed inclaim 5, wherein said sewing machine includes means for trimming andwiping stitching thread when said sequence of stitching operations on awork material is completed; and wherein actuation of said regulatingmeans to said heel position with a count from said counting means of atleast one movement of said sewing needle, further activates saidcomputer to record the count from said counting means and any elapsedtime duration of actuation of said manual control means, and to resetsaid counting means and said means for measuring time duration to zero,and activate said means for trimming and wiping stitching thread.
 7. Aprogrammable sewing machine as claimed in claim 6, including reversingmeans for said reversible work material feed system, and wherein saidcomputer further includes manual means for recording an operatorselected number of initial stitches for automatically operating saidsewing machine in the selected number of initial stitches and forautomatically actuating said reversing means for said selected number ofinitial stitches, as an initial stitching operation and prior to saidsequence of operations.
 8. A programmable sewing machine as claimed inclaim 7, wherein said manual recording means of said computer iseffective to record an operator selected number of final stitches forautomatically actuating said reversing means of said sewing machine forthe selected number of final stitches and for automatically operatingsaid sewing machine for said selected number of final stitches, as afinal stitching operation and after completion of said sequence ofoperations.
 9. A programmable sewing machine as claimed in claim 8,wherein said computer is effective to operate said drive means of saidsewing machine at a lower speed at least two stitches prior to actuationof said reversing means.
 10. A programmable sewing machine as claimed inclaim 9, wherein said computer includes means for indicating to anoperator a condition of insufficient storage capacity in said recordingmeans for additional operations of said sewing machine.
 11. Aprogrammable sewing machine as claimed in claim 10, wherein said drivemeans is a variable speed drive means, and wherein said regulating meansin said actuated position selectively implements said variable speed,means in said computer associated with said variable speed drive meansand said regulating means for inserting in said recording means avariable speed recording related to said selectively implementedvariable speed of said regulating means.
 12. A programmable sewingmachine as claimed in claim 11, wherein said computer includes meansselectively effective for receiving operator imposed instructions forspeed for insertion in said self directed recording means in derogationto said selectively implemented variable speed.
 13. A programmablesewing machine as claimed in claim 12, wherein said means selectivelyeffective for receiving operator imposed instructions for speed furtherincludes means for receiving operator imposed instructions for timeduration of automatic operation of said manual control means inderogation to said time duration measuring means.